Интервал обновления плейлиста Adaptive Streaming player

Что касается поведения адаптивного потокового плеера (конкретно меня интересуют HLS и DASH), как часто он должен перезагружать плейлист? Это указано или зависит от реализации плеера?

Когда он перезагружает плейлист, это делается только для так называемого вариантного плейлиста или тоже мастер каждый раз перезагружается?

Отличается ли это для живого контента и контента по запросу?


person Silvia    schedule 14.10.2015    source источник


Ответы (2)


В случае MPEG-DASH в MPD указывается атрибут minimumUpdatePeriod, который сигнализирует клиенту о наименьшем периоде между потенциальными изменениями в MPD. Это помогает клиентскому приложению определить частоту обновления/повторной загрузки MPD. Если, например, MinimumUpdatePeriod составляет 10 секунд, вы можете обновлять/повторно загружать MPD каждые 10 секунд, и все будет в порядке.

HLS не содержит специального атрибута для этого (насколько мне известно -> проект изменений), но вы можете обновить M3U8 на основе продолжительности сегмента, например, если список воспроизведения содержит сегменты с 10 секундами, вы должны обновлять каждые 10 секунд (каждые 10s новый сегмент может быть доступен в случае прямой трансляции). Если продолжительность сегмента варьируется, вы можете рассчитать среднее значение на основе сегментов, которые вы уже загрузили и обновили в этот интервал.

Вы также можете взглянуть на существующие реализации, такие как JWPlayer, которые поддерживают HLS и DASH. Если вы хотите сгенерировать содержимое HLS и DASH для тестирования, вы можете использовать ffmpeg&mp4box.

person Christopher Mueller    schedule 14.10.2015
comment
Таким образом, для прямой трансляции в HLS наименьший интервал между обновлениями плейлиста будет длительностью сегмента, если я правильно понял. Но действительно ли это делается так, обновляясь перед запросом нового чанка, в существующих плеерах или этот короткий период не нужен, когда плейлист содержит несколько сегментов? - person Silvia; 14.10.2015
comment
Я думаю, что aergistal сослался на правильный раздел в черновике, в котором это описано. Однако то, что я видел на других проигрывателях, это то, что они просто обновляются на основе продолжительности сегмента (среднего), и если проигрыватель находится ближе к живому краю, также кажется, что частота будет увеличена, например, некоторые проигрыватели обновляют M3U8, а затем каждые 500 мс. Я думаю, что flashhls (github.com/mangui/flashls) делает это именно так. - person Christopher Mueller; 15.10.2015

Для HLS см. Общие обязанности клиента в черновике. Обратите внимание, что это для последней версии, если вам нужна более старая версия, проверьте другие версии.

Некоторые соответствующие выдержки:

Вы перезагружаете только LIVE и EVENT без EXT-X-ENDLIST списка воспроизведения мультимедиа (поэтому основная перезагрузка не требуется)

Клиент ДОЛЖЕН периодически перезагружать файл списка воспроизведения мультимедиа, чтобы узнать, какие мультимедиа доступны в данный момент, если он не содержит тега EXT-X-PLAYLIST-TYPE со значением VOD или значением EVENT и EXT-X-ENDLIST. тег также присутствует.

Перезагрузка:

Когда клиент загружает файл списка воспроизведения в первый раз или перезагружает файл списка воспроизведения и обнаруживает, что он изменился с момента последней загрузки, клиент ДОЛЖЕН подождать по крайней мере целевую продолжительность, прежде чем пытаться повторно загрузите файл списка воспроизведения, измеряемый с момента, когда клиент в последний раз начал загрузку файла списка воспроизведения.

Если клиент перезагружает файл плейлиста и обнаруживает, что он не изменился, он ДОЛЖЕН подождать в течение половины целевой продолжительности перед повторной попыткой.

person aergistal    schedule 15.10.2015
comment
Я обнаружил, что Expires истекает 17 октября 2015 года, так что это не официальный протокол, срок действия драфта все еще истек? - person http8086; 14.06.2020