Какой тег кодека HEVC использовать с fMP4, hvc1 или hev1?

Как выбрать правильный тег кодека для использования (hvc1 или hev1) при мультиплексировании видео HEVC в фрагментированный MP4 для потоковой передачи с помощью MPEG-DASH/HLS?

Я считаю, что есть небольшая разница в мультиплексировании в зависимости от тега в соответствии с ISO/IEC FDIS 14496-15:

Когда имя записи образца — «hvc1», обязательным и обязательным значением по умолчанию для array_completeness является 1 для массивов всех типов наборов параметров и 0 для всех остальных массивов. Когда имя записи образца — «hev1», значение по умолчанию array_completeness равно 0 для всех массивов.

Есть ли что-то еще кроме этого?

Почему существует два тега и каковы критерии выбора между ними?

Примечание: по какой-то причине Apple предпочитает hvc1 в соответствии со своей спецификацией HLS Authoring.


person jmsn    schedule 18.08.2020    source источник


Ответы (1)


«hvc1» хранит все наборы параметров внутри контейнера MP4 под полями описания образца. 'hev1' хранит все наборы параметров в полосе (внутри потока HEVC).

Наборы параметров по существу являются обязательными метаданными, необходимыми для декодирования потоков.

Таким образом, у вас есть два немного разных способа мультиплексирования HEVC в MP4.

Я бы выбрал исходя из сценария игры и транспорта.

Ваш плеер или ваша транспортная спецификация могут потребовать того или иного.

person Markus Schumann    schedule 18.08.2020
comment
Я думаю, что hev1 даже поддерживает как внутренние, так и внешние наборы параметров. См. раздел 8.3.2 из ISO/IEC FDIS 14496-15:2019(E). - person jmsn; 01.09.2020