ffmpeg解码概率性报错Received a errinfo frame

固件类型:官方提供的固件
固件文件名称:Ubuntu18.94
固件下载地址:百度网盘 请输入提取码
Log日志:ffmpeg解码报错.zip

需求:使用ffmpeg进行视频解码并进行yuv转rgb的色彩空间转换和分辨率转换(swscale)。

具体描述:当使用如下代码进行scale时,不会报错。

img_convert_ctx =sws_getContext(pCodecCtx->width, pCodecCtx->height,pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height,AV_PIX_FMT_RGB24, SWS_FAST_BILINEAR, NULL, NULL, NULL);

但是使用上述代码则无法实现分辨率转换,因为目标分辨率仍是视频的原始分辨率。

运行结果如下图:

而当直接指定目标分辨率为具体数字(不同于视频原始分辨率)时,即如下代码。

img_convert_ctx =sws_getContext(pCodecCtx->width, pCodecCtx->height,pCodecCtx->pix_fmt, 32, 80, AV_PIX_FMT_RGB24, SWS_FAST_BILINEAR, NULL,NULL, NULL);

则概率性出现Received a errinfo frame报错。如下图所示。

图片看不清的话可查看日志,可以提供代码如果需要的话。

tchip_askquestions
ffmpeg解码报错.zip (160 KB)

ubuntu版本是18.04

将img_convert_ctx =sws_getContext(pCodecCtx->width, pCodecCtx->height,pCodecCtx->pix_fmt, 32, 80, AV_PIX_FMT_RGB24, SWS_FAST_BILINEAR, NULL,NULL, NULL);中的32和80改成64和160后,Received a errinfo frame出现频率降低,改成160和400后目前没遇到Received a errinfo frame,但现在我就是想要32x80分辨率。

这个FFmpeg硬解码已经快4年没有支持了,肯定是有解码问题。不支持是因为rk和FFmpeg版权问题。现在直接基于rkmpp做了ffmedia进行解码