2009-06-26 14 views
7

Attualmente sto cercando di leggere nei fotogrammi video utilizzando FFMPEG. Il formato è PIX_FMT_RGB24; Per ogni frame, i valori RGB sono tutti combinati insieme in frame-> data [0] (dove frame è del tipo AVFrame).Estrarre valori RGB da un AVFrame (FFMPEG) in C++

Come estrarre i singoli valori R, G e B per ciascun fotogramma? Questo è per l'elaborazione del video. Penserei che funzionerebbe allo stesso modo dell'estrazione dei valori RGB da una bitmap. Grazie!

+0

Solo un chiarimento - Ho bisogno del valore R, G e B standalone; Dovrei già avere i dati RGB grezzi da AvFrame – Extrakun

risposta

4

mia ipotesi:

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]; 

mi potrebbe avere R, G e B all'indietro. E c'è molto spazio per l'accelerazione.

+0

Risposta correlata: http://stackoverflow.com/questions/9912873/ffmpeg-avframe-get-full-decoded-data-to-char – Nav