https://trac.ffmpeg.org/wiki/HWAccelIntro
FFmpeg забезпечує підсистему апаратного прискорення.
Прискорення обладнання дозволяє використовувати конкретні пристрої (зазвичай графічну карту> або інші конкретні пристрої) для виконання мультимедійної обробки. Це дозволяє використовувати спеціальне обладнання для виконання вимогливих обчислень, звільняючи ЦП від таких обчислень. Зазвичай апаратне прискорення дозволяє певним апаратним пристроям (як правило, графічному процесору) виконувати операції, пов'язані з декодуванням і кодуванням відеопотоків або фільтруванням відео.
При використанні інструменту FFmpeg, декодування, що підтримується HW, вмикається за допомогою -hwaccel
опції, яка дозволяє певний декодер. Кожен декодер може мати конкретні обмеження (наприклад, декодер H.264 може підтримувати лише базовий профіль). Кодування, що підтримується HW, вмикається за допомогою використання конкретного кодера (наприклад, nvenc_h264). Фільтрування HW-підтримуваної обробки підтримується лише в декількох фільтрах, і в цьому випадку ви включаєте код OpenCL через параметр фільтра.
Існує кілька стандартів API прискорення апаратного прискорення, деякі з яких певною мірою підтримуються FFmpeg.
Параметр "-hwaccel auto" дозволяє вибрати апаратне прискорене декодування, яке буде використовуватися для сеансу кодування. Ви можете додати цей парам з "auto" перед введенням (якщо ваш x264 компілюється з підтримкою OpenCL, ви можете спробувати додати параметр -x264opts), наприклад:
ffmpeg -hwaccel auto -i input -vcodec libx264 -x264opts opencl output
Вибачте, але я не можу пригадати, як перелічити всі доступні варіанти для "-hwaccel".
Також ви можете спробувати це:
https://wiki.archlinux.org/index.php/Hardware_video_acceleration