奇想天外 发表于 2023-3-24 10:08:18

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

需求:使用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报错。如下图所示。
图片看不清的话可查看日志,可以提供代码如果需要的话。

奇想天外 发表于 2023-3-24 10:11:35

ubuntu版本是18.04

奇想天外 发表于 2023-3-24 21:51:17

将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分辨率。

895816513 发表于 2023-3-29 09:59:14

这个FFmpeg硬解码已经快4年没有支持了,肯定是有解码问题。不支持是因为rk和FFmpeg版权问题。现在直接基于rkmpp做了ffmedia进行解码
页: [1]
查看完整版本: ffmpeg解码概率性报错Received a errinfo frame