gpt4 book ai didi

ffmpeg - sws_scale() 不会简单地将图像从源复制到目标

转载 作者:行者123 更新时间:2023-12-04 23:13:00 24 4
gpt4 key购买 nike

尝试将任意视频读取为纯 RGB24 像素,因此使用 sws_scale() 转换帧这边走:

    //...
AVFrame* pic_out = av_frame_alloc();
pic_out->format = AV_PIX_FMT_RGB24;
pic_out->width = 1920;
pic_out->height = 1080;
av_frame_get_buffer( pic_out, 32 );

struct SwsContext * img_convert_ctx = sws_getContext(
1920, 1080, AV_PIX_FMT_YUV420P,
1920, 1080, AV_PIX_FMT_RGB24,
SWS_BICUBIC,
NULL, NULL, NULL
);
//...
sws_scale(
img_convert_ctx,
pic_src->data, //pic_src is from avcodec_receive_frame()
pic_src->linesize,
0,
1080,
pic_out->data,
pic_out->linesize
);

一切都没有任何错误,但是 pic_out最终得到与 pic_src 相同的数据.
可能是什么问题呢?

完整的最小示例是 here (假设是 RGB24 图像存在 2.bmp 看起来实际上是 YUV -something)

最佳答案

问题是我治疗了pic_out->data作为 RGB24 图片数据,但必须是pic_out->data[0]

关于ffmpeg - sws_scale() 不会简单地将图像从源复制到目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60676849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com