Skip to content

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

Flussonic поддерживает проигрывание SRT-потоков. Подробнее об SRT см. на странице Использование протокола SRT.

Настройка SRT-порта обычно производится для одного потока, т. е. один SRT-поток на один порт. Кроме того, Flussonic предоставляет Вам способ настроить один глобальный SRT-порт для нескольких потоков. Например, если Вы используете протокол SRT для ретрансляции. От способа задания порта зависит вид URL для проигрывания, подробнее читайте здесь.

Один SRT-поток на один порт

Чтобы настроить SRT-порт для проигрывания потока, используйте srt_play в настройках потока:

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

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

  • srt://FLUSSONIC-IP:SRT_PORT

, где:

  • FLUSSONIC-IP — IP-адрес сервера Flussonic.
  • SRT_PORT — порт для проигрывания.

Следовательно, применительно к нашему примеру ссылка будет следующая: srt://localhost:9998. Таким образом, с помощью настройки srt_play вы разрешаете проигрывать SRT-поток по указанному порту.

Вы также можете определить SRT-порт для конкретного потока и для публикации (подробнее о публикации SRT-потоков во Flussonic, см. Публикация по SRT). Чтобы настроить один порт одновременно для публикации и проигрывания потока, используйте опцию srt PORT_NUMBER:

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

В примере выше мы можем публиковать SRT-поток example_stream по порту 9998 и проиграть его по этому же самому порту, используя URL следующего формата:

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

, где:

streamid — строка, сформированная как описано здесь.

  • m=request — режим для проигрывания.
  • streamid используется для того, чтобы указать режим m= для проигрывания потока example_stream, поскольку иначе неочевидно будем мы публиковать поток или проигрывать его.

Таким образом, URL для проигрывания потока example_stream будет выглядеть так: srt://localhost:9998?streamid=#!::m=request.

Flussonic позволяет не только использовать один SRT-порт для одного потока, разрешая проигрывание для этого потока, но и настроить один порт для проигрывания нескольких потоков.

Один SRT-порт для проигрывания нескольких потоков

Для того, чтобы настроить SRT-порт для проигрывания нескольких потоков, используйте srt_play в качестве глобальной настройки:

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

Чтобы проиграть example_stream по SRT-порту 9998, используйте URL следующего вида:

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

, где:

  • streamid — строка, сформированная как описано здесь.
  • r=STREAM_NAME — имя потока.

Следовательно, для примера выше ссылка выглядит так: srt://localhost:9998?streamid=#!::r=example_stream.

Рассмотрим еще один пример. Допустим, вам необходимо публиковать SRT-поток во Flussonic по отдельному определённому для публикации порту, а затем проигрывать этот поток наряду с несколькими другими. В таком случае конфигурация выглядит следующим образом:

srt_play {
  port 9998;
}
stream example_stream {
  input fake://fake;
}
stream another_stream {
  input publish://;
  srt_publish {
    port 8888;
  }
}

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

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

, где:

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

Тогда URL для проигрывания another_stream выглядит так: srt://localhost:9998?streamid=#!::r=another_stream,m=request.

Для вашего удобства мы собрали всё в одну таблицу:

URL для проигрывания Конфигурация Описание Пример URL
srt://FLUSSONIC-IP:SRT_PORT stream example_stream {
input fake://fake;
srt_play {
port 9988;
}
}
Разрешает проигрывать только один поток для одного порта.
Поддерживается большинством плееров.
srt://localhost:9988
srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::m=request " _wzxhzdk:21_="
" input="input" publish:_wzxhzdk:22_="publish://;
" srt="srt">stream example_stream
Разрешает публиковать и проигрывать поток по одному и тому же порту. srt://localhost:8888?streamid=#!::m=request
srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::r=STREAM_NAME srt_play {
port 9999;
}
stream example_stream
Разрешает проигрывать несколько потоков по одному SRT-порту. srt://localhost:9999?streamid=#!::r=example_stream
srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::r=STREAM_NAME,m=request srt_play {
port 9988;
}
stream example_stream {
input fake://fake;
}
stream another_stream {
input publish://;
srt_publish {
port 8888;
}
}
Разрешает проигрывать поток по глобально определённому порту при условии, что в настройках этого потока определён также и порт для публикации. srt://localhost:9988?streamid=#!::r=another_stream,m=request

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

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

Пример с passphrase:

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

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

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