访问AVFrame的每个像素

4
我需要访问FFMPEG的AVFrame对象的每个像素信息(如果是RGB,则是每个像素的R、G和B颜色)。
我该怎么做?
1个回答

2
如果您已经进入了正确的框架 - 类似于以下内容:
img_convert_ctx = ffmpeg::sws_getCachedContext(img_convert_ctx,w, h, pCodecCtx->pix_fmt, w, h, ffmpeg::PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);

 ffmpeg::sws_scale(img_convert_ctx, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);

 //Data is in pFrameRGB->data

1
从pFrameRGB->data中获取r、g和b值是困难的部分。我已经浏览了很多代码和示例,但仍然无法弄清楚。你能否编辑你的帖子,展示如何遍历pFrameRGB->data并使用printf打印r、g和b值?这不仅对我有帮助,也对许多其他需要费尽心思弄清楚这个问题的人有帮助。 - Nav
1
我也会觉得这些信息很有帮助,因为弄清楚libav编程并不是一件容易的事情。 - KG6ZVP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接