Оптимизация оборудования с помощью ffmpeg

2704
Jeremy French

У меня есть коробка Linux и я хочу закодировать некоторые видео с помощью ffmpeg. Я слышал, что мой процессор (процессор второго поколения Core i5) имеет аппаратную поддержку кодирования h.264.

Можно ли заставить ffmpeg использовать это, и если да, то как?

0
Несколько общих соображений: эти процессоры очень новые, и для поддержки аппаратного обеспечения программным обеспечением требуется время. Компиляторы должны будут поддерживать его, а затем и более поздние программы. Мои навыки работы с Google могут быть плохими, но я ничего не могу найти в аппаратной поддержке Intel® Quick Sync Video на FFMPEG или GCC. AndrejaKo 13 лет назад 0
Там есть интересная дискуссия [здесь] (http://phoronix.com/forums/showthread.php?29110-Intel-s-Linux-Sandy-Bridge-Graphics-Still-Troubling/page2). AndrejaKo 13 лет назад 1

3 ответа на вопрос

3
林正浩

На сегодняшний день технология 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 -$ | 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 (графическое ядро ​​с процессором Intel 5-го поколения) и выше.

(Г). Кодировка 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. Посмотрите на это здесь . Посмотрите этот ответ для большего количества указателей на то же самое.

0
Mr Alpha

Нет. FFMPEG не поддерживает технологию Intel QuickSync. Чтобы использовать QuickSync, программа должна проходить через Intel Media SDK, который недоступен для Linux.

другие части ffmpeg предназначены только для Windows, поэтому я полагаю, что он может добавить поддержку с достаточными усилиями rogerdpack 11 лет назад 0
0
Loudenvier

x264 доступ к QuickSync без использования MediaSDK. Intel добралась до них, и они взаимно помогли друг другу в достижении этого (google для "x264 QuickSinc). Может быть возможно использовать их усилия и довести их до ffmpeg ...

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