【问题标题】:Access each Pixel of AVFrame访问 AVFrame 的每个像素
【发布时间】:2011-11-09 23:52:10
【问题描述】:

我需要访问 FFMPEG 的 AVFrame 对象的每个像素信息(如果它是 RGB,那么每个像素的每种颜色、R 和 G 和 B)

我怎样才能做到这一点?

【问题讨论】:

    标签: c++ ffmpeg


    【解决方案1】:

    如果您已经前进到正确的框架 - 类似:

    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
    

    【讨论】:

    • 从 pFrameRGB->data 中获取 r、g 和 b 值是困难的部分。我已经阅读了很多代码和示例,但仍然无法弄清楚。您能否编辑您的帖子以显示如何遍历 pFrameRGB->data 并使用 printf 打印 r、g 和 b 值?这不仅会帮助我,还会帮助许多其他不得不打破头来弄清楚这一点的人。
    • 我也会发现这些信息很有帮助,因为弄清楚 libav 编程并不是一件容易的事。
    猜你喜欢
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    相关资源
    最近更新 更多