gpt4 book ai didi

c++ - FFmpeg -- 使用硬件加速进行视频解码

转载 作者:太空狗 更新时间:2023-10-29 21:10:48 40 4
gpt4 key购买 nike

我有一个使用 FFmpeg 解码视频流的项目,我想在可用的地方使用硬件解码。根据this answer , ff_find_hwaccel 和 friends 的使用在较新的 FFmpeg 版本中已弃用。

答案指出 ff_find_hwaccel 已弃用。我想知道分配硬件加速解码器的新方法是如何工作的。它是自动完成的吗?我可以只将 AvDictionary 中的 hwaccel 作为 avcodec_open2 的第三个选项传递,还是我必须做一些更复杂的事情?

目前分配 AVCodecContext 的代码如下所示:

auto video_codec = avcodec_find_decoder(codec_id);
auto context = avcodec_alloc_context3(video_codec);
auto retcode = avcodec_open2(context, video_codec, nullptr);

当然有错误检查。

然后我使用 avcodec_decode_video2 将 AVPackets 插入解码器。

最佳答案

如果可用,在当前版本的 FFMPEG 中自动支持硬件加速。这也是 ff_find_hwaccel 被弃用的原因。

根据所使用的平台和视频编解码器,您可能有也可能没有视频解码的硬件加速支持。例如,H264 视频的硬件加速解码已经在 Nvidia 显卡上支持了很长一段时间,现在使用 H264_NVDEC 解码器,但 HEVC 解码需要显卡为 a fair bit newer。 .对于 AMD 显卡,情况相同,只是您通常会使用提到的 DXVA2 解码器 here .

简而言之:如果您的平台支持硬件加速,FFMPEG 应该会自动使用它。您还可以通过 forcing a decoder 进行额外的测试.

关于c++ - FFmpeg -- 使用硬件加速进行视频解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765883/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com