我想在使用ffmpeg解码的每个帧中提取像素的rgb值。我查看了ffplay源代码
get_video_frame
video_refresh
queue_picture
我尝试了以上三种方法挂钩到框架,但我不明白如何获取像素的rgb值。任何人都可以指点这个
答案 0 :(得分:0)
http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=15&t=805
这是源,这是我使用的转换源,它按预期工作。希望这有助于某人
ColorRGB GetRGBPixel(const AVFrame& frame, int x, int y)
{
// Y component
const unsigned char y = frame.data[0][frame.linesize[0]*y + x];
// U, V components
x /= 2;
y /= 2;
const unsigned char u = frame.data[1][frame.linesize[1]*y + x];
const unsigned char v = frame.data[2][frame.linesize[2]*y + x];
// RGB conversion
const unsigned char r = y + 1.402*(v-128);
const unsigned char g = y - 0.344*(u-128) - 0.714*(v-128);
const unsigned char b = y + 1.772*(u-128);
return ColorRGB(r, g, b);
}