2014-12-16 4 views
2

У меня есть образец файла mpd от http://dash-mse-test.appspot.com/media.html, а ниже - фрагмент, содержащий одно представление.Что означает segmentrange в файле mpd?

... 
    <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 (значение инициализации)

Может ли кто-нибудь помочь мне понять значение этих чисел?

EDIT 1:

В соответствии с ответом на @sander ниже, я понимаю segmentindex является диапазон байтов. Однако я все еще смущен тем, как использовать это значение.

Для например: <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 МБ. Как получить остальные сегменты по диапазону байтов? Сегментная база только упоминает indexRange 674-1149.

BTW, я использую этот плеер, чтобы понять segmentindex.

http://dash-mse-test.appspot.com/dash-player.html?url=http://yt-dash-mse-test.commondatastorage.googleapis.com/media/car-20120827-manifest.mpd

Глядя на запрос заголовка отправленного с помощью браузера Chrome инспектировать инструмент, есть много запроса происходит в небольших диапазонах байт, но я не уверен, как это один байт получить эти диапазоны от MPD.


Благодаря

ответ

3

Точный формат этого файла описан в DASH specification (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 это необходимо загрузить для того, чтобы играть определенную часть видео.

+0

Я внесла некоторые изменения в свой вопрос, основываясь на вашем ответе. Пожалуйста, проверьте и ответьте, когда это возможно. Спасибо за ваше время. – shankardevy

+0

@krishworks - Я отредактировал свой ответ, чтобы предоставить дополнительную ссылку. Вы найдете подробную информацию в ИСО/МЭК 14496-12. – Sander

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