Мне нужно сохранить все кадры из видео MPEG4 или H.264 в YUV-кадры с использованием библиотеки C++. Например, в формате .yuv, .y4m или .y. Затем мне нужно прочитать эти кадры, как цифровые файлы, и изменить некоторые образцы (значение Y). Как я могу это сделать без преобразования в RGB?API FFMPEG: декодирование кадров MPEG в YUV и изменение этих кадров
И как хранить значения AVFrame-> данных? Где хранятся Y-, U- и V-значения?
Спасибо и извините за мой английский =)
О, спасибо! И не могли бы вы рассказать мне смысл «lineize»? – Vaigard
То есть, все образцы яркости хранятся в данных массива [0] последовательно от линии к строке? И обработка 'pFrame-> data [0] [y + pFrame-> width]' дает мне первый образец второй строки? – Vaigard
Да, они сохраняются последовательно. Нет 'y + pFrame-> width' не даст вам вторую строку. 'y + pFrame-> linesize [0]' will. Размер строки (также называемый шаг) - это количество байтов на строку. Это может быть больше (но не меньше) этой ширины, если есть дополнение. см. здесь https://msdn.microsoft.com/en-us/library/windows/desktop/aa473780%28v=vs.85%29.aspx – szatmary