Skip to content

Публикация по SRT

Flussonic поддерживает прием публикации видео по протоколу SRT. Публикация потоков по протоколу SRT широко применяется при доставке видео через Интернет или спутниковую сеть, поскольку SRT гарантирует низкую задержку и при этом предлагает некоторые гарантии доставки контента. Подробнее об SRT см. на странице Использование протокола SRT.

Порядок настройки

Чтобы настроить публикацию во Flussonic Media Server по протоколу SRT:

  1. Создайте поток с источником input publish://, как описано здесь.

  2. Выберите способ указания SRT-порта. Ниже приведены примеры конфигурации и соответствующие URL для различных способов.

  3. Начните публиковать поток во Flussonic, например как описано внизу этой страницы.

Примеры URL и конфигурации

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

Укажите номер порта в UI или в конфигурационном файле с помощью глобального параметра srt PORT_NUMBER:

srt 9998;
stream mysrt {
  input publish://;
}

Используйте следующий URL для публикации потока:

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

, где:

  • FLUSSONIC-IP — IP-адрес сервера Flussonic.
  • SRT_PORT — порт SRT.
  • streamid — строка, сформированная как описано здесь.
  • r=STREAM_NAME — имя потока.
  • m=publish — режим публикации.

Этот URL можно скопировать в UI на вкладке Input в профиле потока:

SRT URL для публикации

Отдельные глобальные порты для публикации и проигрывания

Вы можете разрешить только публикацию для SRT-потоков через один глобальный порт. Укажите номер порта в настройке srt_publish { port PORT_NUMBER; }:

srt_publish {
  port 9998;
}
stream mysrt {
  input publish://;
}

Используйте следующий URL для публикации потока:

srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::r=STREAM_NAME

, где:

  • FLUSSONIC-IP — IP-адрес сервера Flussonic.
  • SRT_PORT — порт SRT.
  • r=STREAM_NAME — имя потока.

Note

В этом случае указывать режим публикации m=publish необязательно, поскольку по указанному порту и так разрешена только публикация.

Отдельный порт для потока

Вы можете разрешить публикацию и проигрывание потока или группы потоков через один порт. Укажите номер порта в параметре srt PORT_NUMBER в настройках потока (stream) или шаблона (template):

stream mysrt {
  input publish://;
  srt 9998;
}

Для публикации потока используйте следующий URL:

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

, где:

  • FLUSSONIC-IP — IP-адрес сервера Flussonic.
  • SRT_PORT — порт SRT.
  • m=publish — режим публикации.

Отдельные порты для публикации и проигрывания потока

Вы можете разрешить только публикацию для SRT-потоков или групп SRT-потоков через один порт. В этом случае вы можете использовать указанный порт только для публикации SRT-потоков или групп SRT-потоков (локальная настройка).

Укажите номер порта в настройке srt_publish { port PORT_NUMBER; } в настройках потока (stream) или шаблона (template):

stream mysrt {
  input publish://;
  srt_publish {
  port 9998;
 }
}

Для публикации потока используйте следующий URL:

srt://FLUSSONIC-IP:SRT_PORT

Warning

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

Flussonic позволяет управлять публикацией с помощью дополнительных параметров.

Дополнительные параметры публикации по SRT

Список параметров для для управления публикацией по SRT (указываются внутри srt_publish) приведен здесь.

Кроме того инициатору публикации Flussonic отправляет в URL информацию об агенте (версии Flussonic) и идентификаторе сессии sessionId (самостоятельно их указывать не нужно).

Давайте рассмотрим пример с использованием параметра passphrase для защиты SRT-порта.

Защита глобального порта

Чтобы защитить глобальный порт, укажите значение параметра passphrase в настройке srt_publish {}:

srt_publish {
  port 9998;
  passphrase 0123456789;
}
stream pub {
  input publish://;
}

Дополнительные параметры указываются в строке запроса (query string) URL:

srt://FLUSSONIC-IP:SRT_PORT?passphrase=PASSWORD&streamid=#!::r=STREAM_NAME

Для нашего примера:

srt://FLUSSONIC-IP:9998?passphrase=0123456789&streamid=#!::r=pub,m=publish

Защита порта потока

Чтобы защитить порт в настройках потока или шаблона, укажите значение параметра passphrase в настройке srt_publish {}:

stream pub {
  input publish://;
  srt_publish {
    port 9998;
    passphrase 0123456789;
  }
}

Дополнительные параметры указываются в строке запроса (query string) URL:

srt://FLUSSONIC-IP:SRT_PORT?passphrase=PASSWORD

В нашем случае URL выглядит так:

srt://FLUSSONIC-IP:9997?passphrase=0123456789

Проверка публикации потока в Flussonic

Вы можете использовать ffmpeg, чтобы протестировать публикацию:

/opt/flussonic/bin/ffmpeg -re -i PATH_TO_VIDEO -c copy -y -f mpegts 'srt://FLUSSONIC-IP:SRT_PORT?pkt_size=1316&streamid=#!::r=STREAM_NAME,m=publish'

, где:

  • FLUSSONIC-IP — IP-адрес сервера Flussonic.
  • SRT_PORT — порт SRT.
  • STREAM_NAME — имя потока.
  • m=publish — режим публикации.

Также можно публиковать поток и из другого стороннего ПО с поддержкой SRT, например OBS Studio:

OBS srt