Skip to content

Воспроизведение DASH

Flussonic Media Server поддерживает раздачу видео по протоколу DASH.

Поддерживаемые кодеки: H264, H265, AAC, MP3, AC-3.

Flussonic Media Server позволяет получать по MPEG-DASH прямой эфир, видео по запросу и видео из архива (catchup и со сдвигом по времени).

Если входной поток содержал DVB субтитры или телетекст, то они будут переданы в выходной поток, проигрываемый по MPEG-DASH, если настроить Flussonic для этого. Если поток пишется в архив, то и субтитры сохраняются в архиве.

Для передачи информации о потоке в протоколе DASH используется файл-манифест. Для простоты мы называем его здесь "плейлист".

На этой странице:

Простое воспроизведение DASH

Если у вас есть live поток или файл (один видео трек, один аудио трек), то URL для воспроизведения через DASH очень простой:

http://FLUSSONIC-IP/STREAMNAME/index.mpd

где flussonic-ip нужно заменить на адрес и порт вашего Flussonic Media Server.

Воспроизведение отдельных дорожек

Если у потока есть несколько аудио- и видеодорожек, то можно указать, какие именно дорожки следует отдавать. Для этого укажите номера дорожек в параметре filter.tracks, добавив его в конец URL потока.

Примеры:

  • Выбрать первую аудио- и вторую видеодорожки:
http://FLUSSONIC-IP/STREAMNAME/index.mpd?filter.tracks=v2a1
  • Выбрать только видео:
http://FLUSSONIC-IP/STREAMNAME/index.mpd?filter.tracks=v1
  • Выбрать вторую видеодорожку и первую аудиодорожку для проигрывания отрывка архива DVR длиной 3600 секунд, начиная со момента времени UTC 1362504585:
http://FLUSSONIC-IP/STREAMNAME/archive-1362504585-3600.mpd?filter.tracks=v2a1

Проигрывание архива по DASH (Catchup DVR)

Когда ваш поток уже записан на сервере нашим DVR, вы можете воспроизвести видео через DASH, указав время начала и конца передачи (например, взятые из EPG).

URL для проигрывания из архива:

http://FLUSSONIC-IP/STREAMNAME/archive-1362504585-3600.mpd

Такой URL будет отдавать список сегментов начиная с UTC 1362504585 (2013, Март, 5, 17:29:45 GMT) и на один час вперед (3600 секунд).

Если в потоке будет больше одной звуковой дорожки или больше одного битрейта, то будет доступен адаптивный стриминг и переключение языков.

Проигрывание по DASH с перемоткой назад

Есть специальный плейлист "rewind-N.mpd" с большим «скользящим» окном, позволяющий перематывать и ставить на паузу DASH потоки на долгие часы.

http://FLUSSONIC-IP/STREAMNAME/rewind-7200.mpd

Здесь 7200 — длина DASH плейлиста в секундах. Это означает, что ваши клиенты могут поставить эфир на паузу на 2 часа или перемотать на начало футбольного матча без обращения по специальными URL для DVR архива.

А также есть плейлист с возможностью получить прямой эфир и отмотать его назад до указанного момента в секундах (timestamp): "archive-N-now.mpd", где N — Unix timestamp того момента, до которого можно будет отмотать поток.

http://FLUSSONIC-IP/STREAMNAME/archive-1362504585-now.mpd

DVR timeshift playback

Здесь мы опишем ещё один способ проигрывания архива по DASH с возможностью перемотки до указанного произвольного времени. Если вы не создали отложенный поток, то вы всё равно можете проиграть видео по DASH со сдвигом по времени с помощью правильно построенного URL.

Пример URL для абсолютного таймшифта:

http://FLUSSONIC-IP/STREAMNAME/timeshift_abs-1584435600.mpd

Где 1584435600 — 03/17/2020 @ 9:00am (UTC)

Плеер начнет воспроизведение с live и даст возможность перемотки назад до 1584435600.

DASH-манифест для проигрывания DVR на телевизорах под WebOS

Flussonic может создавать манифест DASH двух типов: с несколькими периодами и с одним периодом.

Первоначально Flussonic разработал свой DASH манифест для воспроизведения архивов, записанных в CDN. Манифест с несколькими периодами был пригоден для этой цели.

Однако такой манифест несовместим с широким спектром устройств и телевизоров, используемых потребителями во многих странах, например в США. К ним относятся телевизоры LG на WebOS и др.

Для устройств, которые не могут воспроизводить DASH с многопериодной временной шкалой, мы разработали однопериодный манифест, позволяющий воспроизводить DASH на этих устройствах.

Добавьте period=mono к URL следующим образом:

http://FLUSSONIC-IP/STREAMNAME/archive-TIME-DURATION.mpd?period=mono

или

http://FLUSSONIC-IP/STREAMNAME/archive-TIME-now.mpd?period=mono

Замечание. Однопериодный манифест для live с возможностью просмотра записанного архива (archive-TIME-now.mpd?period=mono) чувствителен к качеству источника входного потока — необходимо, чтобы не было пробелов в вещании потока.

Включение соответствия DASH манифеста DVB профилю

Если вы используете валидатор для DASH и выбрали в нем проверку на соответствие манифеста DVB профилю, нужно обеспечить такое соответствие.

Для этого добавьте к URL потока опцию dvb=1:

http://FLUSSONIC-IP/STREAMNAME/index.mpd?dvb=1

Проигрывание потока с субтитрами

Flussonic поддерживает передачу как TTML, так и WebVTT субтитров в DASH потоки, что позволяет показывать субтитры на большем количестве устройств и приставок.

Выбор субтитров для проигрывания по DASH

Поскольку в манифест DASH включены два формата субтитров, вы можете выбрать один из них при проигрывании выходного потока:

https://FLUSSONIC-IP/STREAMNAME/index.mpd?text=wvtt

или (TTML используется по умолчанию)

https://FLUSSONIC-IP/STREAMNAME/index.mpd?text=ttml

Опцию text также можно использовать в запросах со «скользящим» окном:

http://FLUSSONIC-IP/STREAMNAME/rewind-7200.mpd?text=wvtt

Добавление скриншотов в плейлист DASH

В плейлист DASH можно добавить скриншоты как специальные теги, которые сможет прочитать плеер. Это можно сделать как для потока с включенным DVR, так и для VOD-файла.

Чтобы добавить скриншоты в плейлист, добавьте в URL потока или VOD-файла опцию ?thumbnails=.

Пример для окна DVR потока:

http://flussonic:80/ort/archive-1643013512-now.mpd?thumbnails=50

Пример для VOD-файла:

http://flussonic:80/vod/bunny.mp4/Manifest.mpd?thumbnails=100

Указанное значение определяет, сколько ссылок на скриншоты будет добавлено в плейлист, чтобы покрыть продолжительность окна DVR или VOD-файла соответственно. Плеер добавит на полосу проигрывания скриншоты через равные интервалы времени. Продолжительность интервала между скриншотами равна всей продолжительности окна DVR или VOD-файла, разделенной на это значение.

Если указать слишком большое число, плеер будет использовать дополнительные ресурсы, что может привести к зависанию плеера или браузера. Уменьшив этот параметр, можно ограничить количество скриншотов и, таким образом, уменьшить расход ресурсов.

Для работы этой опции в настройках потока или VOD-файла необходимо указать параметры thumbnails enabled=ondemand и size (размер скриншота). Например: thumbnails enabled=ondemand size=320x240;. Можно указать несколько размеров через пробел, например, size=320x250 size=640x480. В этом случае в плейлист будет включено несколько треков со скриншотами. Каждый скриншот в соответствующем треке будет пропорционально уменьшен, чтобы уместиться в указанный размер.

Больше информации можно найти в схеме Streaming API.