标签: cuvid

如何将像素格式为AV_PIX_FMT_CUDA的FFmpeg AVFrame转换为像素格式为AV_PIX_FMT_RGB的新AVFrame

我有一个使用FFmpeg 3.2接收H264 RTP流的简单C ++应用程序。为了节省CPU,我正在使用编解码器h264_cuvid进行解码。我的FFmpeg 3.2是在启用硬件加速的情况下编译的。实际上,如果我执行以下命令:

ffmpeg -hwaccels
Run Code Online (Sandbox Code Playgroud)

我懂了

cuvid
Run Code Online (Sandbox Code Playgroud)

这意味着我的FFmpeg设置可以与NVIDIA卡“通话”。该功能avcodec_decode_video2提供给我的帧具有像素格式AV_PIX_FMT_CUDA。我需要使用将这些框架转换为新的框架AV_PIX_FMT_RGB。不幸的是,我可以用很好knwon功能不进行转换sws_getContext,并sws_scale因为像素格式AV_PIX_FMT_CUDA不被支持。如果我尝试使用swscale,则会收到错误消息:

“不支持cuda作为输入像素格式”

您知道如何将FFmpeg AVFrame从转换AV_PIX_FMT_CUDAAV_PIX_FMT_RGB吗?(代码片段将不胜感激)

c++ ffmpeg h.264 cuvid

8
推荐指数
2
解决办法
4136
查看次数

标签 统计

c++ ×1

cuvid ×1

ffmpeg ×1

h.264 ×1