2009-06-26 65 views
7

我正在嘗試使用FFMPEG在視頻幀中進行讀取。格式是PIX_FMT_RGB24;對於每一幀,RGB值全部在幀 - >數據[0]中組合在一起(其中幀是AVFrame類型的)。從C++中的AVFrame(FFMPEG)中提取RGB值

如何提取每幀的R,G和B值?這是爲了處理視頻。我認爲它可以像從位圖中提取RGB值一樣工作。謝謝!

+0

只是澄清 - 我需要R,G和B值獨立;我應該已經從AvFrame原始RGB數據 – Extrakun 2009-06-26 03:52:21

回答

4

我的猜測:

int p=x*3+y*frame->linesize[0]; 
r=frame->data[0][p]; 
g=frame->data[0][p+1]; 
b=frame->data[0][p+2]; 

我可能有R,G,B的倒退。而且有很多提速的空間。

+0

相關答案:http://stackoverflow.com/questions/9912873/ffmpeg-avframe-get-full-decoded-data-to-char – Nav 2012-11-02 11:00:48