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