需求:使用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报错。如下图所示。 图片看不清的话可查看日志,可以提供代码如果需要的话。 |
-
160.43 KB, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1