2009-06-26 26 views
7

Tôi hiện đang cố gắng đọc trong các khung hình video bằng cách sử dụng FFMPEG. Định dạng là PIX_FMT_RGB24; Đối với mỗi khung, các giá trị RGB được kết hợp với nhau trong khung-> dữ liệu [0] (Vị trí khung là loại AVFrame).Trích xuất các giá trị RGB từ một AVFrame (FFMPEG) trong C++

Làm cách nào để trích xuất các giá trị R, G và B riêng lẻ cho mỗi khung? Đây là để xử lý video. Tôi nghĩ rằng nó sẽ làm việc theo cách tương tự như giải nén các giá trị RGB từ một bitmap quá. Cảm ơn!

+0

Chỉ cần làm rõ - Tôi cần giá trị R, G và B độc lập; Tôi đã có dữ liệu RGB thô từ AvFrame – Extrakun

Trả lời

4

Tôi đoá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]; 

tôi có thể có r, g, b và ngược. Và có rất nhiều chỗ để tăng tốc.

+0

Câu trả lời liên quan: http://stackoverflow.com/questions/9912873/ffmpeg-avframe-get-full-decoded-data-to-char – Nav

Các vấn đề liên quan