Чтение содержимого диапазона инициализации и индекса SegmentBase в потоке DASH

Я пытался понять, как работает DASH, в основном MPD и как удаленный клиент загружается для воспроизведения потока. Из многих параметров в MPD, диапазон инициализации и SegmentBase indexRange, по-видимому, представляют большой интерес. Если я правильно понимаю, эти значения дают базовый URL-адрес и сопоставления с ключевыми кадрами, которые должны быть извлечены, если клиент ищет / перематывает видео.

Мой вопрос: можно ли увидеть эти значения до того, как я начну воспроизводить видео? Например, могу ли я использовать такой инструмент, как youtube-dl, чтобы загрузить эти байтовые диапазоны и декодировать их так, чтобы они были удобочитаемыми для человека?

Очень признателен. -Jamie

1 ответ

Решение

Я также начинаю изучать DASH так что прими мой ответ с крошкой соли.

SegmentBase используется, когда у вас есть один сегмент в представлении. Для нескольких сегментов есть SegmentList а также SegmentTemplate, Вы можете найти больше в этом обзоре MPEG-DASH.

Для MPEG-DASH SegmentBaseindexRange атрибут указывает на местоположение sidx коробка ( Сегментный индекс). Окно содержит информацию о подсегментах и ​​точках произвольного доступа для поиска и т. Д. В этом кратком руководстве по MPEG-DASH содержится дополнительная информация.

В случае WebM-DASH индекс сегмента соответствует элементу Cues.

Initializationrange атрибут указывает на сегмент инициализации.

Если сервер поддерживает это, вы можете выдавать запросы HTTP Range для получения данных, но вам нужно будет их проанализировать.

Здесь есть синтаксический анализатор ISO BMFF Node.js: https://github.com/necccc/iso-bmff-parser-stream и эталонную реализацию клиента DASH-IF в JavaScript можно найти по адресу: dash.js.

Для WebM Cues можно прочитать с помощью mkvinfo, как сообщает @jamie.

Другие вопросы по тегам