Извлечение значений RGB из AVFrame (FFMPEG) в C++

В настоящее время я пытаюсь читать видеокадры с помощью FFMPEG. Формат PIX_FMT_RGB24; Для каждого кадра все значения RGB объединяются в кадр->данные[0] (где кадр имеет тип AVFrame).

Как извлечь отдельные значения R, G и B для каждого кадра? Это для обработки видео. Я думаю, что это будет работать так же, как извлечение значений RGB из растрового изображения. Спасибо!


person Extrakun    schedule 26.06.2009    source источник
comment
Просто уточнение - мне нужны значения R, G и B отдельно; У меня уже должны быть необработанные данные RGB из AvFrame.   -  person Extrakun    schedule 26.06.2009


Ответы (1)


Моя догадка:

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 наоборот. И есть много возможностей для ускорения.

person David    schedule 26.06.2009
comment
Связанный ответ: stackoverflow .com/questions/9912873/ - person Nav; 02.11.2012