Как использовать ускорение GPU в FFmpeg с AMD Radeon?

У меня есть Radeon Vega 64, и установленный AMDGPU от официального сайта, но я понятия не имею, куда пойти отсюда.

Я хочу использовать аппаратное ускорение для преобразования видео с FFmpeg. Каково соответствие FFmpeg команда и как мне должно понравиться устройство/драйвер к FFmpeg?

3
задан 7 January 2019 в 21:14

2 ответа

Я предоставлю инструкции и для Windows и для Linux, поскольку Вы не указали на то, какая платформа Вы идете. Используйте эти инструкции, которые применимы к Вашему случаю.

Если Вы находитесь в Windows, можно получить доступ к связанным кодерам через AMF, точно названный h264_amf и hevc_amf, чье использование может быть просмотрено через:

ffmpeg -h encoder=h264_amf

ffmpeg -h encoder=hevc_amf

Необходимо было бы создать двоичный файл FFmpeg для Windows, или исходно, или, как рекомендуется, кросс-компилируя. Этот проект является большим запуском на том предмете.

Если Вы будете использовать опцию кросс-компиляции, будете передавать аргументы ниже в пользу сборки с функциями, то Вам будет нужно:

./cross_compile_ffmpeg.sh --gcc-cpu-count=12  --build-libmxf=n --disable-nonfree=n --prefer-stable=y --compiler-flavors=multi

Обратите внимание, что получающаяся сборка выше является нераспространяемым файлом и только для персонального использования.

На Linux, с помощью мезаструктуры с открытым исходным кодом amdgpu драйвер (не собственный пакет установил от AMD), можно получить доступ к основанным на VAAPI кодерам, точно названному h264_vaapi и hevc_vaapi, использование которого может быть просмотрено через:

ffmpeg -h encoder=h264_vaapi

ffmpeg -h encoder=hevc_vaapi

Насколько я знаю (исправляют меня, если я неправ), VP8 и кодирование VP9 не выставляется на стороне AMD через VAAPI. Можно подтвердить это путем выполнения:

vainfo | grep Slice

В Вашей системе и подтверждении, какие кодеры поддерживаются. Наиболее вероятно, что FFmpeg с включенным VAAPI является значением по умолчанию на подобных Ubuntu. Однако можно также создать копию с источника, раз так необходимого. См. руководство по компиляции по Wiki FFmpeg и адаптируйтесь по мере необходимости. Можно также найти помощников, таких как это, полезное.

Существует возможность, что AMD основанные на AMF кодеры в конечном счете приземлится на Linux, с помощью основанного на вулкане interop. Возьмите это в качестве происходящей работы.

4
ответ дан 1 December 2019 в 15:49

В MacOS Catalina через внешний графический процессор через Thunderbolt 3 мне удалось успешно использовать flag

-hwaccel videotoolbox

через установленную по умолчанию копию brew. Затем я мог бы использовать кодировщик по умолчанию libx265 примерно в 20 раз быстрее, чем кодировщик через ЦП.

полный:

ffmpeg 
  -hwaccel videotoolbox -i 'Forget to fly.mkv' \
  -c:v libx265 -preset medium -crf 28 \
  -c:a copy \
  'Forget to fly.x265.mkv'
1
ответ дан 18 August 2020 в 23:58

Другие вопросы по тегам:

Похожие вопросы: