Воспроизведение 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 | 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 { input fake://fake; } | Разрешает проигрывать несколько потоков по одному 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