Apple HTTP Live Streaming (HLS) CDN
Основные понятия HLS
Apple HTTP Live Streaming (HLS) - это реализация технологии адаптивного потокового вещания от компании Apple.
Данная реализация четко придерживается всех принципов адаптивного вещения и обладает ощутимым преимуществом в виде поддержки мобильными устройствами на базе iOS и Android.
Для работы HLS требуются следующие компоненты:
- фрагменты видео (ts-файл);
- m3u8-манифест файл, содержащий ссылки на ts-фрагементы видео;
- индексный m3u8 файл, содержащий ссылки на m3u8-манифесты нескольких вариантов детализации видео (различающиеся качеством картинки и звука - битрейтом).
Использование HLS CDN
Для организации HLS трансляции отдельного файла без переключения между вариантами видео, достаточно передать плееру ссылку с HLS-маркером:
USERNAME.cdn.zerocdn.com/file.mp4:hls:manifest.m3u8
При этом URL фрагмента будет следующим:
USERNAME.cdn.zerocdn.com/file.mp4:hls:N.ts
где N - идентификатор фрагмента.
USERNAME.cdn.zerocdn.com/file.mp4:hls:manifest.m3u8
Для организации трансляции с возможностью переключения вариантов видео необходимо создать в соотвествующей папке индексный m3u8-файл, следующего содержания:
#EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=352000,RESOLUTION=426x240 ./240.mp4:hls:manifest.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=608000,RESOLUTION=640x360 ./360.mp4:hls:manifest.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1152000,RESOLUTION=640x360 ./480.mp4:hls:manifest.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2692000,RESOLUTION=1280x720 ./720.mp4:hls:manifest.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5192000,RESOLUTION=1920x1080 ./1080.mp4:hls:manifest.m3u8
Где 240.mp4, 360.mp4, 480.mp4, 720.mp4 и 1080.mp4 - разные варианты видео расположенные в этой папке, а строки:
- #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=352000,RESOLUTION=426x240
- #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=608000,RESOLUTION=640x360
- #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1152000,RESOLUTION=1280x720
- #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2692000,RESOLUTION=1280x720
- #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5192000,RESOLUTION=1920x1080
описание характеристик этих файлов.
Внимание! Префикс './' перед именем файла обязателен для сохранения совеместимости с устройствами Apple!
Подписывание HLS ссылок
Для организации эффективной работы механизма защиты HLS ссылок, необходимо расположить файлы таким образом, что бы разные форматы одного видео, находились в одной папке.
- video1/
- 240.mp4
- 360.mp4
- 480.mp4
- 720.mp4
- 1080.mp4
- hls.m3u8
- video2/
- 240.mp4
- 360.mp4
- 480.mp4
- 720.mp4
- 1080.mp4
- hls.m3u8
В таком случае появляется возможность подписи общей части URL для всех файлов внутри указанной папки. А Подписанный HLS URL будет выглядеть следующим образом:
http://USERNAME.cdn.zerocdn.com/path/to/video1/[sign]:[deadline]/hls.m3u8
При этом для генерации подписи будут использоваться следующие исходные данные:
md5(/path/to/-[ip]-[deadline]-[secret])
Технические требования HLS
ZeroCDN.com обеспечивает поддержку HLS стриминга для файлов с учетом следующих требований:
- mp4-контейнер,
- видео-кодек h264,
- аудио-кодек AAC,
- поддержка faststart.