2016-03-03 4 views
2

Спецификация ISO/IEC 14496-15 «Информационные технологии. Кодирование аудиовизуальных объектов . Часть 15: Формат файла расширенного видео кодирования (AVC)», который описывает avc1 поле, используемое в файлах MP4, указывает, что поле avc1 может содержать несколько записей SPS и PPS для описания одного образца (не путать с повторением SPS/PPS). И я не уверен, как мультиплексировать такие потоки:Muxing MP4 с профилем, который имеет несколько SPS/PPS

  • До сих пор я видел потоки высокого профиля H.264 с несколькими блоками PPS nal для описания одного образца. Что меня смущает, так это то, что, поскольку я никогда не видел поток H.264 с несколькими блоками SPS, возможно, это возможно и в чем причина этого?
  • Если это возможно - что происходит с полями AVCProfileIndication и AVCLevelIndication в поле avc1? Должны ли они быть заполнены из первой записи SPS? Если есть несколько SPS, я думаю, что индикация профиля не должна отличаться, но как насчет уровня?

ответ

1

У sps и pps есть идентификаторы, закодированные как целое число. VCL NALU говорят декодеру «декодировать меня, что вам нужны данные из pps с идентификатором X». Следовательно, теоретически каждый VCL NALU может ссылаться на SPS/PPS с другим идентификатором. Я никогда не видел этого на практике. Но это часть спецификации h.264, поэтому контейнер поддерживает ее. И да, просто используйте первый SPS для байтов профиля/ограничений/уровней.

+0

Я видел несколько PPS для потоков с высоким профилем, но никогда не поток, который имел бы несколько SPS и VCL NALU, ссылался бы на них. Было бы интересно понять причины этого. Возможно, SVC? –

Смежные вопросы