Конвертировать видео с помощью ffmpeg, используя GPU

У меня есть сайт обмена видео, и я конвертирую видео с помощью ffmpeg, но конвертация занимает много времени. как это сделать быстро и безопасно? Я думаю, что когда ffmpeg совпадает с GPU, это помогает мне, но я не нашел подходящей ссылки для использования. Какое приложение или ссылка могут помочь мне с хорошей производительностью.


person sdnaghdi    schedule 17.08.2013    source источник
comment
Что вы пробовали? У вас будет больше шансов получить помощь, если вы предоставите код, который вы пробовали.   -  person    schedule 17.08.2013
comment
Я никогда не слышал о кодеке, оптимизированном для графического процессора, в ffmpeg .... На мой взгляд, нет опции --enable с ./configure для поддержки cusa, opencl или других. Извини!   -  person alexbuisson    schedule 17.08.2013
comment
Формат преобразования h264 использует ускорение VDPAU, но я не знаю, как его включить и использовать.   -  person sdnaghdi    schedule 17.08.2013
comment
VDPAU (API декодирования и представления видео для Unix) Не уверен, что это будет полезно для кодирования ... Больше похоже на что-то для декодирования и воспроизведения видео!   -  person alexbuisson    schedule 17.08.2013
comment
Текущее состояние trac.ffmpeg.org/wiki/HWAccelIntro#CUDACUVIDNvDecode   -  person fubo    schedule 26.06.2017


Ответы (3)


Обновление за четвертый квартал 2017 г.. С момента моего первоначального ответа кодирование на основе графического процессора стало широко доступным. Если у вас есть современная видеокарта NVIDIA и вы можете скомпилировать ffmpeg, тогда все в порядке. Спасибо Дмытро Дзюбаку за указание на документы FFmpeg, в которых говорится, что действительно «кодирование на основе процессора обычно обеспечивает лучшее качество, чем кодирование на основе графического процессора».

--

Кодирование на основе графического процессора относится к стандарту вычислений кодека/графического процессора (CUDA, OpenCL), поэтому вам необходимо указать, что вы используете в своем случае. ffmpeg, среди прочего, является оболочкой для популярных кодеков, таких как x264 и VP8 для видео.

При использовании x264 все попытки до сих пор давали в лучшем случае смешанные результаты. Ничто из того, что можно было бы передать в производство, так и не увидело свет.

Основная концепция предлагает SDK, который можно использовать для кодирования на основе графического процессора H264. Вы можете прочитать здесь дополнительную информацию. Я не видел ценник на их SDK, но я думаю, что это может быть дорого.

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

person Arnaud Leyder    schedule 26.04.2014
comment
Кодирование на основе процессора обеспечивает лучшее качество, чем кодирование на основе графического процессора. - нужна цитата. - person Jules G.M.; 21.06.2016
comment
Аппаратные кодировщики обычно генерируют выходные данные значительно более низкого качества, чем хорошие программные кодировщики, такие как x264 — trac.ffmpeg.org/wiki/ HWAccelIntro - person Dmytro Dzyubak; 21.11.2017

Если вы используете графический процессор NVidia, это может быть полезно:

https://developer.nvidia.com/nvidia-codec-libraries

person Justin Buser    schedule 27.08.2014

Возможно, он все еще находится «в разработке», но я нашел несколько потоков doom9, посвященных значительному улучшению кодировщика x264 (использование lib ffmpeg), когда функция «LookAhead» находится «на GPU», но она использует OpenCL .

Это может помочь.

person alexbuisson    schedule 17.08.2013