deprecated pixel format used, make sure you did set range correctly
这个警告并不会导致解码速度变慢,所以无关痛痒。
报这个警告的原因是因为源视频,或者想生成的视频的格式是yuvj×××,这种格式已被弃用。将这样格式转化为可用的格式就行了。
原因就在src或aim这里
SwsContext* sws_ctx = sws_getContext(src_width, src_height,
src,
dst_width, dst_height,
AV_PIX_FMT_YUYV422,
aim,
NULL,
NULL,
NULL);
下面我只说src这里怎么操作:
AVPixelFormat ConvertDeprecatedFormat(enum AVPixelFormat format)
{
switch (format)
{
case AV_PIX_FMT_YUVJ420P:
return AV_PIX_FMT_YUV420P;
break;
case AV_PIX_FMT_YUVJ422P:
return AV_PIX_FMT_YUV422P;
break;
case AV_PIX_FMT_YUVJ444P:
return AV_PIX_FMT_YUV444P;
break;
case AV_PIX_FMT_YUVJ440P:
return AV_PIX_FMT_YUV440P;
break;
default:
return format;
break;
}
}
用这个函数,先把yuvj×××这个格式转化为yuv格式,然后再使用sws_getContext()的时候就没问题了。