Чтение содержимого диапазона инициализации и индекса SegmentBase в потоке DASH
Я пытался понять, как работает DASH, в основном MPD и как удаленный клиент загружается для воспроизведения потока. Из многих параметров в MPD, диапазон инициализации и SegmentBase indexRange, по-видимому, представляют большой интерес. Если я правильно понимаю, эти значения дают базовый URL-адрес и сопоставления с ключевыми кадрами, которые должны быть извлечены, если клиент ищет / перематывает видео.
Мой вопрос: можно ли увидеть эти значения до того, как я начну воспроизводить видео? Например, могу ли я использовать такой инструмент, как youtube-dl, чтобы загрузить эти байтовые диапазоны и декодировать их так, чтобы они были удобочитаемыми для человека?
Очень признателен. -Jamie
1 ответ
Я также начинаю изучать DASH
так что прими мой ответ с крошкой соли.
SegmentBase
используется, когда у вас есть один сегмент в представлении. Для нескольких сегментов есть SegmentList
а также SegmentTemplate
, Вы можете найти больше в этом обзоре MPEG-DASH.
Для MPEG-DASH SegmentBase
indexRange
атрибут указывает на местоположение sidx
коробка ( Сегментный индекс). Окно содержит информацию о подсегментах и точках произвольного доступа для поиска и т. Д. В этом кратком руководстве по MPEG-DASH содержится дополнительная информация.
В случае WebM-DASH индекс сегмента соответствует элементу Cues.
Initialization
range
атрибут указывает на сегмент инициализации.
Если сервер поддерживает это, вы можете выдавать запросы HTTP Range для получения данных, но вам нужно будет их проанализировать.
Здесь есть синтаксический анализатор ISO BMFF Node.js: https://github.com/necccc/iso-bmff-parser-stream и эталонную реализацию клиента DASH-IF в JavaScript можно найти по адресу: dash.js.
Для WebM Cues
можно прочитать с помощью mkvinfo, как сообщает @jamie.