Что означает сегментирование в файле mpd?
Я получил образец файла mpd с http://dash-mse-test.appspot.com/media.html а ниже приведен фрагмент, содержащий одно представление.
...
<Representation bandwidth="4190760" codecs="avc1.640028" height="1080" id="1" mimeType="video/mp4" width="1920">
<BaseURL>car_cenc-20120827-89.mp4</BaseURL>
<SegmentBase indexRange="2755-3230">
<Initialization range="0-2754" />
</SegmentBase>
</Representation>
...
Что означает SegmentBase? Что означает значение indexRange?
Диапазон конца инициализации всегда на единицу меньше начального значения indexRange. т.е. в указанном выше 2755-1 = 2754 (значение инициализации)
Может ли кто-нибудь помочь мне понять значение этих цифр?
РЕДАКТИРОВАТЬ 1:
Согласно ответу @sander ниже, я понимаю, что indexindex - это диапазон байтов. Тем не менее, я все еще не понимаю, как использовать это значение.
Например:
<Representation bandwidth="4190760" codecs="avc1.640028" height="1080" id="1" mimeType="video/mp4" width="1920">
<BaseURL>car-20120827-89.mp4</BaseURL>
<SegmentBase indexRange="674-1149">
<Initialization range="0-673" />
</SegmentBase>
</Representation>
В этом представлении есть только один сегмент, содержащий весь видеоклип в одном файле. (размер файла составляет около 90 МБ).
Диапазон инициализации упоминает 0-673. Таким образом, от 0-го байта файла до 673-го байта файла содержится сегмент инициализации для видео. Правильно ли мое понимание?
Если это так, файл составляет около 90 МБ. Как получить другие сегменты по байтовому диапазону? SegmentBase только упоминает indexRange 674-1149.
Кстати, я использую этот плеер, чтобы понять индекс сегмента.
Глядя на запрос заголовка, отправленный с помощью инструмента проверки Chrome, много запросов происходит в небольших байтовых диапазонах, но я не уверен, как можно получить эти байтовые диапазоны из MPD.
Спасибо
1 ответ
Точный формат этого файла описан в спецификации DASH (ISO / IEC 23009-1). SegmentBase
элемент описан в главе 5.3.9.2.
Моя интерпретация этого фрагмента состоит в том, что это представление состоит из одного файла mp4, который доставляется проигрывателю в виде одного сегмента. indexRange
это диапазон байтов в этом сегменте, который представляет индекс сегмента (sidx
поле в файле mp4) и Initialization
элемент указывает диапазон байтов, который включает любые соответствующие данные инициализации (различные поля заголовка в файле mp4). Как вы заметили, диапазоны аккуратно охватывают начало сегмента, а остальные предположительно заполнены образцами данных носителя. Диапазоны байтов информируют игрока, откуда именно он должен загрузить соответствующие данные.
Изменить: sidx
Поле содержит диапазоны байтов, которые ссылаются на подсегменты этого единственного файла mp4. Цитата из ISO / IEC 14496-12: 2012 (E):
Каждый блок индекса сегмента документирует, как (под) сегмент делится на один или несколько подсегментов (которые сами могут быть дополнительно подразделены с использованием блоков индекса сегмента).
Подсегмент определяется как интервал времени содержащего (под) сегмента и соответствует единственному диапазону байтов содержащего (под) сегмента. Длительности всех подсегментов суммируют с длительностью содержащего (подс) сегмента.
На основании содержания sidx
В этом окне проигрыватель может определить, какие части файла mp4 необходимо загрузить, чтобы воспроизвести определенный фрагмент видео.