Как организован битрейт идеи h264? / Начальные коды заголовка - PullRequest
2 голосов
/ 28 апреля 2010

Я пытался немного узнать о h264, глядя на битовый поток видеофайла с помощью шестнадцатеричного редактора. Я нашел здесь стартовые коды для плоскостей видеообъекта (0x000001b6) и для i-кадров (0x000001b600).

Но я не могу найти много таких байтов в видеофайлах. Большую часть времени эти стартовые коды появляются в начале файла с несколькими кусками между ними. Я ожидал, что они будут появляться очень регулярно, на равном расстоянии по всему файлу!?

Можно ли смотреть файл с помощью шестнадцатеричного редактора таким образом? Какие еще стартовые коды существуют и как организован файл h264?

1 Ответ

3 голосов
/ 28 апреля 2010

Стартовый код 0x000001b6 применяется к видео mpeg-4 part 2, которое является простым профилем.Это соответствует кодекам, таким как XVID и DIVX.H.264 - это mpeg-4 part 10, который является расширенным профилем кодирования видео.H.264 использует разные стартовые коды.

Я не так знаком с частью 10, как с частью 2, но краткий обзор стандарта (ISO 14496-10) показывает, что поток битов разбит на секции, называемые блоками NAL.Эти устройства имеют 24-битный код 0x000001, предшествующий им для синхронизации согласно разделу B.1.1.Следующий байт состоит из полей forbidden_zero_bit, nal_ref_idc и nal_unit_type согласно разделу 7.3.1.

Я не уверен, разделены ли эти блоки NAL на границах кадра или нет.Возможно, вам просто понадобится овладеть стандартом, в котором изложен весь синтаксис битового потока.

...