Skip to content

Проигрывание

Проигрывание потоков

Flussonic Media Server позволяет проигрывать потоки по разным протоколам.

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

Настройки проигрывания находятся в пользовательском интерфейсе Flussonic на вкладке Output в настройках потока.

URL-адреса для проигрывания видео

embed.html

Адрес: http://FLUSSONIC-IP/STREAMNAME/embed.html

В Flussonic Media Server есть специальная страница — embed.html, которая предназначена для вставки видео на сайт или просмотра видео через браузер. Страница автоматически определяет браузер и выбирает поддерживаемый протокол. Для большинства устройств на сегодня — это HLS. Подробнее в статье Вставка видео на сайт (embed.html).

HLS

Адрес для плеера: http://FLUSSONIC-IP/STREAMNAME/index.m3u8

Подробнее в статье «Воспроизведение HLS». Для вставки на сайт используйте (embed.html) или любой сторонний плеер. Например, hls.js или clappr.

HLS для мультиязыковых потоков, просмотр на приставке и в VLC

Адрес для плеера: http://flussonic-ip/STREAMNAME/video.m3u8

Подробнее в статье «Мультиязычный HLS».

HTML5 (MSE-LD)

Поток доступен по адресу: http://FLUSSONIC-IP/STREAMNAME/embed.html?realtime=true

Подробнее в статье «HTML5 (MSE-LD) воспроизведение с низкой задержкой».

DASH

Поток доступен по адресу http://FLUSSONIC-IP/STREAMNAME/index.mpd

А так же есть специальный плейлист "rewind-N.mpd" с большим «скользящим» окном, позволяющий перематывать и ставить на паузу потоки на долгие часы: http://FLUSSONIC-IP/STREAMNAME/rewind-7200.mpd

Подробнее в статье «Воспроизведение DASH».

MSS

Поток доступен по адресу: http://FLUSSONIC-IP/STREAMNAME.isml/manifest

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

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

  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=v1a1 — выбрать первую аудио- и вторую видеодорожки.
  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=a1 — только аудио.
  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=v1 — только видео.
  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=a1t2 — выбрать первую аудиодорожку и вторую дорожку с субтитрами.
  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=v1t1t2t3 — первая видеодорожка и три дорожки с субтитрами.

Указание дорожек необходимо для проигрывания потока на клиентских устройствах, которые, к примеру, не поддерживают многоязыковой MSS манифест.

О том, как проиграть архив по MSS, см. в разделе Доступ к DVR

HTTP MPEG-TS

Поток доступен по адресу: http://FLUSSONIC-IP/STREAMNAME/mpegts

HDS

Адрес для плеера: http://FLUSSONIC-IP/STREAMNAME/manifest.f4m

RTMP

Поток доступен по адресу: rtmp://FLUSSONIC-IP/static/STREAMNAME

RTSP

Поток доступен по адресу: rtsp://FLUSSONIC-IP/STREAMNAME

Если у потока есть несколько аудио- и видеодорожек, то по умолчанию Flussonic выбирает первую дорожку (a1v1).

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

Примеры:

  • rtsp://FLUSSONIC-IP/STREAMNAME?tracks=a2v1

  • rtsp://FLUSSONIC-IP/STREAMNAME?tracks=a2v1&from=1 — DVR.

  • rtsp://FLUSSONIC-IP/vod/file?tracks=a2v1 — VOD.

  • rtsp://FLUSSONIC-IP/STREAMNAME2 = rtsp://FLUSSONIC-IP/STREAMNAME1?tracks=v1a1

Можно выбрать одну дорожку:

  • rtsp://FLUSSONIC-IP/STREAMNAME?tracks=a1 — выбрать только аудио.

  • rtsp://FLUSSONIC-IP/STREAMNAME?tracks=v1 — выбрать только видео.

Если указать больше двух дорожек или указать в неверном формате, то будет использоваться параметр по умолчанию (a1v1).

WebRTC

Поток доступен по адресу:

  • ws://FLUSSONIC-IP/STREAMNAME/webrtc

  • wss://host/STREAMNAME/webrtc?transport=tcp — передавать WebRTC поток по TCP.

Подробнее о WebRTC плеере и организации проигрывания в статье «WebRTC проигрывание».

SHOUTcast

Поток доступен по адресу: http://FLUSSONIC-IP/STREAMNAME/shoutcast

Flussonic Media Server умеет отдавать SHOUTcast, ICEcast радио поток.

SRT

Flussonic поддерживает проигрывание SRT-потоков.

Протокол SRT имеет несколько режимов работы: Caller (Инициатор), Listener (Слушатель) и Rendezvous. В парадигме Flussonic проигрывание можно соотнести с режимом Listener, поскольку Flussonic находится в ожидании соединения и при удачном его установлении, начинает взаимодействие с Инициатором (Caller).

Настроить порт для проигрывания можно двумя способами: глобально или внутри настроек потока.

Глобальный порт — порт, указанный в качестве основного принимающего сигнал (слушателя, или Listener) по SRT.

Пример:

srt 9998;
stream example_stream {
  input fake://fake;
}

or with the help of srt_play:

srt_play {
  port 9998;
}
stream example_stream {
  input fake://fake;
}

Порт потока — порт, указанный в рамках настроек какого-либо потока.

Пример:

stream example_stream {
  input fake://fake;
  srt_play {
    port 9998;
  }
}

Главное отличие состоит в том, что при настроенном глобальном порте обязательно указание имени потока в streamid, в то время как при настроенном порте потока это необязательно. Мы разберём это более детально чуть позже.

Давайте посмотрим как настраивается проигрывание во Flussonic.

Глобальный порт

URL для проигрывания SRT-потока выглядит следующим образом:

Warning

Имя потока в streamid обязательно.

  • srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::r=STREAM_NAME,m=request

, где:

  • FLUSSONIC-IP — IP-адрес сервера Flussonic.

  • SRT_PORT — порт для проигрывания.

  • r=STREAM_NAME — имя потока для проигрывания.

Параметры для управления проигрыванием указываются в рамках srt_play. Полный список возможных параметров для настройке Вы можете найти по этой ссылке.

Рассмотрим пример:

В примере выше мы определили глобальный порт 9998 для проигрывания. Таким образом, URL будет иметь следующий вид:

  • srt://FLUSSONIC-IP:9998?streamid=#!::r=example_play,m=request

Порт потока

URL для проигрывания через порт потока имеет следующий вид:

Note

Имя потока в streamid указывать необязательно.

  • srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::m=request

Давайте рассмотрим пример:

stream example_stream {
  input fake://fake;
  srt_play {
    port 9998;
  }
}

В примере выше мы настроили порт 9998 для проигрывания потока example_play. Таким образом, URL выглядит следующим образом:

  • srt://FLUSSONIC-IP:9998?streamid=#!::m=request

Flussonic даёт возможность управлять проигрыванием потока с помощью параметров.

Параметры для управления проигрыванием потоков по SRT

Ниже Вы можете найти таблицу с параметрами для управления проигрыванием потоков по SRT:

Параметры Тип данных Описание Пример
minversion 0xXXYYZZ или x.y.z Минимальна версия SRT, требуемая от пира. По умолчанию значение равно (0x010000) или 1.0.0.. minversion 1.3.0.
version 0xXXYYZZ или x.y.z Необходимая версия SRT. По умолчанию значение равно (0x010000) или 1.0.0.. version 1.3.0
enforcedencryption булево значение Если значение равно true, то отправитель и получатель должны иметь один и тот же пароль (включая пустую строку, иными словами, без защиты). Если пароли не совпадают или только одна из сторон использует защиту, то соединение разрывается. По умолчанию значение параметра равно true. enforcedencryption 0
passphrase строка Пароль для защиты передачи данных. Длина пароля должна быть не менее 10 и не более 79 символов. Значение по умолчанию — пустая строка (""). passphrase 9876543210
linger численное (в секундах) Время ожидания получения данных сокетом. По умолчанию равно -1(подставляется автоматически в зависимости от вида передачи данных). linger 2
timeout численное (в миллисекундах) Если равно false, то время отправки данных не ограничено. Поведение по умолчанию. timeout 100

Пример с passphrase:

stream example_stream {
  input fake://fake;
  srt_play {
    passphrase 0987654321;
    port 9998;
  }
}

URL будет иметь следующий вид:

  • srt://FLUSSONIC-IP:9998?passphrase=0987654321&streamid=#!::m=request

Как настроить протоколы для проигрывания потока

Приведенные выше URL-адреса можно найти в пользовательском интерфейсе Flussonic на вкладке Output в настройках потока.

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

Начиная с версии 20.02, вы можете использовать более короткую нотацию для указания выходных протоколов для потока. Пользовательский интерфейс поддерживает новую нотацию, а в файле можно перечислить все протоколы с помощью опции protocol.

Прежняя нотация тоже поддерживается.

Пример

Например, для потока channel_01 вы хотите разрешить проигрывание по всем протоколам, кроме MPEG-TS и HLS.

output protocols

В файле конфигурации эти настройки выглядят следующим образом:

stream channel_01 {
  protocols -mpegts -hls;
}

Для потока channel_02 вы хотите разрешить только DASH и RTMP и запретить все остальные:

output protocols

В файле конфигурации эти настройки выглядят следующим образом:

stream channel_02 {
  protocols dash rtmp;
}