Термин
EXT-X-PART
Тег HLS-плейлиста (HLS Authoring Spec, ред. 2020), объявляющий partial-сегмент – субкусок полного сегмента длиной 100–400 мс. Главный инструмент для снижения задержки в LL-HLS.
До появления LL-HLS HLS-плееры могли загружать только полные сегменты – обычно по 2–6 секунд каждый. EXT-X-PART меняет эту ситуацию. Медиаплейлист, поддерживающий low-latency, может содержать частичные фрагменты ещё не завершённого сегмента – по одному тегу EXT-X-PART на каждый partial, с атрибутами `DURATION` (в секундах, дробное), `URI` (или `BYTERANGE` родительского сегмента) и `INDEPENDENT` (true, если partial начинается с keyframe и сам по себе декодируется).
Плеер считывает теги EXT-X-PART для текущего сегмента в процессе его формирования, немедленно получает каждый partial-фрагмент по мере появления и начинает декодирование, не дожидаясь завершения родительского сегмента. В сочетании с EXT-X-PRELOAD-HINT (URL следующего partial-фрагмента становится известен заранее) и блокирующим запросом обновления плейлиста (плеер ожидает следующее обновление от сервера, не прибегая к опросу) это обеспечивает задержку от экрана до экрана на уровне 2–5 секунд.
Рекомендуемый Apple HLS Authoring Specification паттерн – 1-секундные сегменты с 200-мс partial-ами, то есть по 5 partial-ов на сегмент. Каждый partial в нижнем уровне медиа представляет собой CMAF-чанк. Операционно partial-ы обычно реализуются как byte-диапазонные ссылки внутри родительского сегмента (один HTTP-файл на сегмент, выборка по byte-range для partial-ов): таким образом лучше контролируется объём кэша, а также избегается взрывной рост URL-адресов, который возник бы при интерпретации каждого partial как отдельного файла.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.