FFmpeg: кодировать Rgb-кадры (AvFrames) в H264 - PullRequest
1 голос
/ 10 декабря 2010

Когда я кодирую кадр Rgb24 с H264, я получаю «ширина ввода больше, чем шаг» Кстати, если я дам необработанное изображение Yuv420p, ffmpeg успешно закодирует его ...

То, что я хотел знать, это:

i) Нужно ли указывать формат Yuv для кодирования? Не можете дать кадр rgb для кодирования h264? II) Если мы можем дать кадр RGB, что за хитрость?

1 Ответ

0 голосов
/ 10 июля 2013

Я знаю, что это немного поздно (с 2010 года ответов нет), но звучит так, будто вам нужно (или нужно) настроить обертку данных вашего изображения.

Из следующей статьи MSDN (я знаю, что это MSDN, но его объяснение задействованных концепций ДЕЙСТВИТЕЛЬНО хорошо):

Когда видеоизображение хранится в памяти, буфер памятиможет содержать дополнительные байты заполнения после каждой строки пикселей.Байты заполнения влияют на то, как изображение хранится в памяти, но не влияют на способ отображения изображения.

Шаг - это количество байтов от одной строки пикселей в памяти до следующей строки пикселей в памяти.,Страйд также называется шагом.Если присутствуют байты заполнения, шаг будет шире, чем ширина изображения, как показано на следующем рисунке.

Image stride illustration

Подробнее здесь

Посмотрите, что вы указали как для ширины изображения, так и для шага изображения.Независимо от того, какие данные вы предоставляете для строки, она содержит больше битов, чем указано для шага (и я предполагаю, что ширина также совпадает).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...