gpt4 book ai didi

ffmpeg YUV 到 RGB 扭曲的颜色和位置

转载 作者:行者123 更新时间:2023-12-04 23:30:56 28 4
gpt4 key购买 nike

抱歉,由于声誉低,我仍然无法为我的问题发布图片。

我使用 ffmpeg 函数将解码帧从 YUV 转换为 RGB24,但颜色和结果图像严重失真。以下是我的代码片段,框架宽度和高度为 (176, 144)

len = avcodec_decode_video2(c, picture, &got_picture, &avpkt);
if (got_picture) {
//...

AVFrame *pFrameRGB = avcodec_alloc_frame();
// Determine required buffer size and allocate buffer
int numBytes=avpicture_get_size(PIX_FMT_RGB24, c->width, c->height);
uint8_t *buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_RGB24, c->width, c->height);

struct SwsContext *img_convert_ctx = sws_getContext(c->width, c->height, PIX_FMT_YUV420P, c->width, c->height, PIX_FMT_BGR24, SWS_BICUBIC, NULL, NULL, NULL);
sws_scale(img_convert_ctx, picture->data, picture->linesize, 0, picture->height, pFrameRGB->data, pFrameRGB->linesize);
sws_freeContext(img_convert_ctx);
// Save the frame to disk
if(++frame<=5)
SaveFrame(pFrameRGB, c->width, c->height, frame);

最佳答案

如果我更改为转换为 ARGB,结果很好@@。

关于ffmpeg YUV 到 RGB 扭曲的颜色和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815433/

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