简单的问题,但我很难找到答案。
我们正在决定转码引擎(最好是开源的),在我看来 FFMPEG 不使用硬件加速,但我不确定。
我相信 ffmpeg 使用 libavcodec,与 Handbrake 等无数其他产品中使用的库相同。我不敢相信他们不支持硬件加速,因此,我的问题。
简单的问题,但我很难找到答案。
我们正在决定转码引擎(最好是开源的),在我看来 FFMPEG 不使用硬件加速,但我不确定。
我相信 ffmpeg 使用 libavcodec,与 Handbrake 等无数其他产品中使用的库相同。我不敢相信他们不支持硬件加速,因此,我的问题。
libavcodec 具有允许客户端实现硬件解码的 API。我不认为手刹支持它。
这不使用CUDA 内核或任何其他类型的 SIMD 语言,所有这些对于该任务都是无用的。它使用与 GPU(或更新的 CPU)一起打包的专用解码器硬件。CUDA 恰好提供了一个 API 来访问它,这就是“CUDA 支持”的意思。
我使用 Loiloscope。自首次发布以来,它就具有 CUDA 加速转码功能。
据我所知,ffmpeg 不使用 CUDA,如果您对某些功能感到好奇 - CoreAVC Video Decoder在他们的 H.264 解码器中有这样的选项。
如果调用 avcodec_find_decoder() 来获取解码器,FFmpeg 将不会使用硬件加速来解码。相反,使用特定硬件解码器调用 avcodec_find_decoder_by_name() 将获得 GPU 利用率。例如:
AVCodec *avcodec_h264dec = avcodec_find_decoder_by_name("h264_cuvid");