Ffmpeg sws_scale()不转换图像,只需将图像从源复制到目标

Ffmpeg sws_scale()不转换图像,只需将图像从源复制到目标,ffmpeg,libav,swscale,Ffmpeg,Libav,Swscale,尝试将任意视频读取为普通RGB24像素,因此使用sws\u scale()以下方式转换帧: /。。。 AVFrame*pic_out=av_frame_alloc(); 图片输出->格式=AV\U PIX\U FMT\U RGB24; pic_out->宽度=1920; pic_out->高度=1080; av_帧_获取_缓冲器(pic_out,32); 结构SwsContext*img\u convert\u ctx=sws\u getContext( 1920年,1080年,AV_PIX_F

尝试将任意视频读取为普通RGB24像素,因此使用
sws\u scale()
以下方式转换帧:

/。。。
AVFrame*pic_out=av_frame_alloc();
图片输出->格式=AV\U PIX\U FMT\U RGB24;
pic_out->宽度=1920;
pic_out->高度=1080;
av_帧_获取_缓冲器(pic_out,32);
结构SwsContext*img\u convert\u ctx=sws\u getContext(
1920年,1080年,AV_PIX_FMT_YUV420P,
1920、1080、AV_PIX_FMT_RGB24、,
SWS_双三次曲线,
空,空,空
);
//...
sws_标度(
img_convert_ctx,
pic\u src->data,//pic\u src来自avcodec\u receive\u frame()
pic_src->linesize,
0,
1080,
图片输出->数据,
图片输出->线路尺寸
);
一切正常,但
pic\u out
最终拥有与
pic\u src
相同的数据。 有什么问题吗


完整的最小示例是(应该是RGB24图像作为2存在。bmp看起来实际上是YUV-某个东西)

问题是我将
picu out->data
视为RGB24图像数据,但它需要是
picu out->data[0]