FFMPEG использует CUDA или любое другое аппаратное ускорение? - PullRequest
2 голосов
/ 15 декабря 2011

Простой вопрос, но я не могу найти ответ.

Мы выбираем механизм транскодирования (желательно с открытым исходным кодом), и мне кажется, что FFMPEG не использует аппаратное ускорение, но я не уверен.

Я считаю, что ffmpeg использует libavcodec, ту же библиотеку, которая используется в бесчисленном количестве других продуктов, таких как Handbrake. Я не могу поверить, что они не поддерживают аппаратное ускорение, поэтому мой вопрос.

Ответы [ 4 ]

1 голос
/ 25 января 2012

libavcodec имеет API, который позволяет клиентам реализовывать аппаратное декодирование.Я не думаю, что Handbrake поддерживает это.

Это не использует ядра CUDA или любой другой язык SIMD, которые бесполезны для этой задачи.Он использует выделенное аппаратное обеспечение декодера, поставляемое в комплекте с графическим процессором (или более новым процессором).CUDA предоставляет API для доступа к этому, что означает «поддержка CUDA».

0 голосов
/ 17 августа 2017

Если вы вызываете avcodec_find_decoder () для получения декодера, FFmpeg не будет использовать аппаратное ускорение для декодирования.Вместо этого вызов avcodec_find_decoder_by_name () с определенным аппаратным декодером обеспечит использование графического процессора.Например:

AVCodec *avcodec_h264dec = avcodec_find_decoder_by_name("h264_cuvid");
0 голосов
/ 10 января 2012

Я пользуюсь Loiloscope. Он имеет ускоренные транскоды CUDA с момента его первого выпуска.

0 голосов
/ 16 декабря 2011

Насколько я знаю, ffmpeg не использует CUDA, если вам интересно что-то, что делает - CoreAVC Video Decoder имеет такую ​​опцию в своем декодере H.264.

...