2011-12-15 2 views
2

Простой вопрос, но у меня возникли проблемы с поиском ответа.Использует ли FFMPEG CUDA или любое другое аппаратное ускорение?

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

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

ответ

0

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

0

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

1

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

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

0

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

AVCodec *avcodec_h264dec = avcodec_find_decoder_by_name("h264_cuvid");