Воспроизведение HLS
Flussonic Media Server поддерживает раздачу видео по протоколу HLS. Многие из доступных возможностей нестандартны для HLS, но мы поддерживаем их для вашего удобства.
Поддерживаемые кодеки: H264, H265, MPEG2 video, AAC, MP3, MPEG2 audio, AC-3.
Flussonic Media Server позволяет получать по HLS прямой эфир, видео по запросу, видео из архива (catchup и timeshift).
Если входной поток содержал DVB субтитры или телетекст, то они будут переданы в выходной поток, проигрываемый по HLS, если настроить Flussonic для этого. Если поток пишется в архив, то и субтитры сохраняются в архиве.
Содержание:
- Простое воспроизведение HLS
- Мультиязычный HLS
- Добавление «Audio only» для Apple
- Отдельные битрейты для приставок
- DVR catchup playback
- Rewind playlist
- DVR timeshift playback
- Воспроизведение отдельных дорожек
Простое воспроизведение HLS
Если у вас есть простой live поток или файл (одно видео, один звук), то URL для воспроизведения через HLS очень простой:
http://FLUSSONIC-IP/STREAMNAME/index.m3u8
где FLUSSONIC-IP
— это пример адреса + порта вашего Flussonic Media Server.
Flussonic Media Server также принимает playlist.m3u8
в конце URL для обратной совместимости с другими серверами.
Когда вы начинаете работать с мультиязычными или мультибитрейтными контентом, все становится сложнее.
Мультиязычный HLS
Если вы хотите воспроизвести ваш мультиязычный поток на iPhone, вам нужно использовать тот же http://192.168.2.3:80/STREAMNAME/index.m3u8
Но если вы хотите посмотреть мультиязычный поток используя VLC или приставку, нужно включать video.m3u8.
URL для плеера:
http://FLUSSONIC-IP/STREAMNAME/video.m3u8
Это связано с тем, что, согласно требованиям Apple HLS, для каждого отдельного языка нужно указывать отдельный плейлист с audio only вариантом. В MPEG-TS другой механизм: рядом с видео укладываются все аудиодорожки, и плеер сам выбирает, что будет проигрывать. Чтобы видео можно было посмотреть на iPhone, оно должно соответствовать требованиям Apple. Но VLC и приставки, в нарушение стандарта HLS, ожидают старый вариант MPEG-TS, преобразованный в HLS. Поэтому нужно включать video.m3u8
.
Добавление «Audio only» для Apple
Apple требует, чтобы у всех ваших потоков был вариант без видео, только звук.
Они считают, что если пользователь смотрит видео по 3G и, оказавшись в зоне неуверенного приема, лучше у него будет только звук, чем буферизация.
Вы можете включить эту опцию в Flussonic Media Server следующим образом:
stream example {
url file://vod/bunny.mp4;
add_audio_only;
}
Note
Такая настройка может сделать ваш index.m3u8
адрес невоспроизводимым в VLC или на приставке. В этом случае используйте video.m3u8
(см. выше).
Отдельные битрейты для приставок
Когда у вас есть мультибитрейтный мультиязычный контент и вы хотите проиграть его на приставке, которая не поддерживает мультибитрейтный HLS плейлисты,
вы можете запросить с Flussonic Media Server отдельные плейлисты с одним видео и всеми звуковыми дорожками, как с опцией mono
:
http://FLUSSONIC-IP/STREAMNAME/video1.m3u8
Этот плейлист не мультибитрейтный (не вариантный), в нем URL до сегментов, в которых первая видео дорожка и все доступные звуковые дорожки.
Если вы хотите доставлять мультиязычные мультибитрейтные потоки на приставки, не понимающие стандарт Apple для мультиязычности, используйте video.m3u8:
http://flussonic-ip/STREAMNAME/video.m3u8
Это мультибитрейтный плейлист, который отдает список плейлистов с разными качествами: video1.m3u8, video2.m3u8 и т.д.
DVR catchup playback
Когда ваш поток уже записан на сервере нашим DVR, вы можете воспроизвести видео через HLS, используя время начала и конца передачи (например, из EPG).
URL будет:
http://FLUSSONIC-IP/STREAMNAME/archive-1362504585-3600.m3u8
Этот плейлист будет так называемый variant, если в потоке будет больше одной звуковой дорожки или больше одного битрейта. Он будет отдавать список сегментов начиная с UTC 1362504585 ( 2013, Март, 5, 17:29:45 GMT) и один час вперед.
URL mono
даст список сегментов, содержащих все дорожки, в MPEG-TS:
http://FLUSSONIC-IP/STREAMNAME/mono-1362504585-3600.m3u8
Более конкретный videoN
плейлист даст список сегментов с N видео дорожкой и всеми звуковыми дорожками:
http://FLUSSONIC-IP/STREAMNAME/video1-1362504585-3600.m3u8
и variant видео плейлист со списком videoN
плейлистов:
http://FLUSSONIC-IP/STREAMNAME/video-1362504585-3600.m3u8
HLS Event playlist
Вы можете запросить HLS Event плейлист по ссылке:
http://FLUSSONIC-IP/STREAMNAME/index-1362504585-now.m3u8
Event плейлисты используются для того, чтобы дать клиенту возможность перемотатывать видео в рамках идущего мероприятия, например, вебинара, концерта или текущей ТВ программы.
Обратите внимание, что плеер начнет проигрывание с прямого эфира, для доступа к архиву нужно перемотать в плеере.
Перемотка плейлиста
Есть специальный плейлист "rewind-N.m3u8" с большим «скользящим» окном, позволяющий перематывать и ставить на паузу HLS потоки на долгие часы.
http://FLUSSONIC-IP/STREAMNAME/rewind-7200.m3u8
7200 — длина HLS плейлиста в секундах. Это означает, что ваши клиенты могут поставить эфир на паузу на 2 часа или перемотать на начало футбольного матча без обращения по специальными архивным ссылкам.
DVR timeshift playback
Если у вас есть поток, записываемый на диск, но вы не настроили отложенный поток, вы можете проиграть видео со сдвигом по времени с помощью правильно построенного HLS адреса.
Cписок URL для относительного таймшифта:
/timeshift_rel-3600.m3u8
/mono-timeshift_rel-3600.m3u8
/video-timeshift_rel-3600.m3u8
/video1-timeshift_rel-3600.m3u8
и для абсолютного таймшифта:
/timeshift_abs-1508403742.m3u8
/mono-timeshift_abs-1508403742.m3u8
/video-timeshift_abs-1508403742.m3u8
/video1-timeshift_abs-1508403742.m3u8
Воспроизведение отдельных дорожек
Если у потока есть несколько аудио- и видеодорожек, то можно указать, какие именно дорожки следует отдавать. Для этого укажите номера дорожек, добавив строку запроса с параметром filter.tracks
к URL потока.
Примеры:
Выбрать первую аудио- и вторую видеодорожки:
http://FLUSSONIC-IP/STREAMNAME/index.m3u8?filter.tracks=v2a1
Выбрать только видео:
http://FLUSSONIC-IP/STREAMNAME/index.m3u8?filter.tracks=v1
Проигрывание отрывка длиной 3600 секунд из DVR архива, начиная со времени UTC 1362504585:
http://FLUSSONIC-IP/STREAMNAME/archive-1362504585-3600.m3u8?filter.tracks=v2a1
Устаревший синтаксис вида filter=tracks:v2a1 поддерживается, но рекомендуется синтаксис filter.tracks=v2a1.