2009-06-26 8 views
7

Actualmente estoy tratando de leer en marcos de video mediante FFMPEG. El formato es PIX_FMT_RGB24; Para cada cuadro, los valores RGB se combinan todos juntos en frame-> data [0] (Donde frame es del tipo AVFrame).Extraer valores RGB de un marco AVFrame (FFMPEG) en C++

¿Cómo se extraen los valores R, G y B individuales para cada cuadro? Esto es para procesar el video. Creo que funcionaría de la misma manera que extraer los valores RGB de un mapa de bits también. ¡Gracias!

+0

Solo una aclaración: necesito el valor R, G y B independiente; Ya debería tener los datos RGB sin procesar del AvFrame – Extrakun

Respuesta

4

Mi suposición:

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

tenga yo qué R, G y B hacia atrás. Y hay mucho espacio para la aceleración.

+0

Respuesta relacionada: http://stackoverflow.com/questions/9912873/ffmpeg-avframe-get-full-decoded-data-tochar – Nav

Cuestiones relacionadas