На сегодняшний день технология Intel QuickSync поддерживается в Linux и предоставляется двумя основными способами: VAAPI и Intel Media SDK.
При соответствующей настройке вы получите кодеры на основе QuickSync через Intel MediaSDK, а именно h264_qsv
и hevc_qsv
. Чтобы увидеть использование кодера:
ffmpeg -h encoder=h264_qsv
ffmpeg -h encoder-hevc_qsv
Второй метод, через API-интерфейсы VAAPI, требует, чтобы FFmpeg был собран с опцией --enable-vaapi
переданной на этапе ./configure
. Это значение по умолчанию в таких дистрибутивах, как Debian и Arch Linux, и, как таковое, легко доступно для использования "из коробки".
Чтобы просмотреть список доступных кодеров и фильтров VAAPI для сборки FFmpeg, выполните:
$ for i in encoders decoders filters; do
echo $i:; ffmpeg -hide_banner -${i} | egrep -i "vaapi"
done
И по использованию:
ffmpeg -h encoder=hevc_vaapi
ffmpeg -h encoder=h264_vaapi
ffmpeg -h encoder=vp8_vaapi
ffmpeg -h encoder=vp9_vaaapi
Из вышеприведенного списка очевидно, что каждый вышеприведенный кодер выводит видеокодек на выход, от H.265/HEVC до VP9.
Поддержка платформы зависит от вашей платформы:
(А). Кодирование H.264 поддерживается от Sandybridge (графика 2-го поколения Intel Core Processor) до настоящего времени.
(Б). Кодирование HEVC поддерживается на Skylake и выше, для него доступно 10-битное кодирование на Kabylake и выше.
(С). Кодировка VP8 доступна по крайней мере в Broadwell (графика 5-го поколения Intel Core Processor Graphics) и выше.
(Г). Кодировка VP9 доступна по крайней мере от Kabylake и выше. Coffelake и не только предложат 10-битное кодирование VP9.
Несколько дополнительных замечаний по качеству кодирования:
А теперь небольшие заметки о NVENC и настройке его для высококачественного кодирования:
Quick Sync Encoder от Intel, как и любой другой аппаратный кодер, имеет несколько ограничений по сравнению с чисто программным кодером, таким как x264 и x265, а именно контроль качества и строгое ограничение на поддерживаемые типы входных текстур. Поэтому, если вы рассматриваете QuickSync для любого профессионального рабочего процесса, пожалуйста, оцените выигрыш в производительности по сравнению с качеством воспринимаемого кодирования, прежде чем инвестировать в него.
Если вы смотрите на высококачественные коды на VAAPI, убедитесь, что вы, по крайней мере, используете Haswell (iGPU Intel 4-го поколения), поскольку в этой архитектуре появились такие функции, как концепция «Target Usage» (TU). Эта функция предназначена для обеспечения простого доступа к серии градаций без необходимости заставлять пользователей выбирать скорость передачи данных и метод управления скоростью. На предыдущих итерациях, хотя технически было семь ступеней, только три были действительно подвержены потреблению: качество (TU1), сбалансированный (TU4) и скорость (TU7). Это изменилось с последним поворотом графики Intel HD, с каждым шагом полностью выбираемым и представленным Intel media SDK.
Следует отметить новые оптимизации алгоритмов управления битрейтом, заслуживающие внимания концепции LA-BRC. Посмотрите на это здесь. Посмотрите этот ответ для большего количества указателей на то же самое.