Воспроизведение SRT
Flussonic поддерживает проигрывание SRT-потоков.
Протокол SRT имеет несколько режимов работы: Caller (Инициатор), Listener (Слушатель) и Rendezvous. В парадигме Flussonic проигрывание можно соотнести с режимом Listener, поскольку Flussonic находится в ожидании соединения и при удачном его установлении, начинает взаимодействие с Инициатором (Caller).
Настройка SRT-порта обычно производится для одного потока, т. е. один SRT-поток на один порт. Кроме того, Flussonic предоставляет Вам способ настроить один SRT-порт для нескольких потоков. Например, если Вы используете протокол SRT для ретрансляции. Мы познакомим Вас с обоими способами.
Один 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:9988
.
Таким образом, с помощью настройки srt_play
Вы разрешаете проигрывать SRT-поток по указанному порту.
Вы также можете определить SRT-порт для конкретного потока и для публикации.
Чтобы узнать больше о публикации SRT-потоков во Flussonic, см. Публикация по SRT.
Чтобы настроить один порт одновременно для публикации и проигрывания потока, используйте опцию srt PORT_NUMBER
:
stream example_stream {
input publish://;
srt 9998;
}
В примере выше мы можем публиковать SRT-поток example_stream
по порту 8888
и проиграть его по этому же самому порту, используя URL следующего формата:
- srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::m=request
, где:
- m=request — режим для проигрывания.
streamid
используется для того, чтобы указать режим m=
для проигрывания потока example_stream
, поскольку иначе неочевидно будем мы публиковать поток или проигрывать его.
Таким образом, URL для проигрывания потока example_stream
будет выглядеть так: srt://localhost:8888?streamid=#!::m=request
.
Flussonic позволяет не только использовать один SRT-порт для одного потока, разрешая проигрывание для этого потока, но и настроить один порт для проигрывания нескольких потоков.
Один SRT-порт для проигрывания нескольких потоков
Для того, чтобы настроить SRT-порт для проигрывания нескольких потоков, используйте srt_play
в качестве глобальной настройки:
srt_play {
port 9998;
}
stream example_stream {
input fake://fake;
}
Чтобы проиграть example_stream
по SRT-порту 9999
, используйте URL следующего вида:
- srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::r=STREAM_NAME
, где:
- r=STREAM_NAME — имя потока.
Следовательно, для нашего примера ссылка выглядит так: srt://localhost:9999?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:9988?streamid=#!::r=another_stream,m=request
.
Для вашего удобства мы собрали всё в одну таблицу:
URL для проигрывания | Конфигурация | Описание | Пример URL |
---|---|---|---|
srt://FLUSSONIC-IP:SRT_PORT |
``` | ||
stream example_stream { | |||
input fake://fake; | |||
srt_play { | |||
port 9998; | |||
} | |||
} | |||
``` | Разрешает проигрывать только один поток для одного порта. Поддерживается большинством плееров. |
srt://localhost:9988 |
|
srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::m=request |
``` | ||
stream example_stream { | |||
input publish://; | |||
srt 9998; | |||
} | |||
``` | Разрешает публиковать и проигрывать поток по одному и тому же порту. | srt://localhost:8888?streamid=#!::m=request |
|
srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::r=STREAM_NAME |
``` | ||
srt_play { | |||
port 9998; | |||
} | |||
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 9998; | |||
} | |||
stream example_stream { | |||
input fake://fake; | |||
} | |||
stream another_stream { | |||
input publish://; | |||
srt_publish { | |||
port 8888; | |||
} | |||
} | |||
``` | Разрешает проигрывать поток по глобально определённому порту при условии, что в настройках этого потока определён также и порт для публикации. | srt://localhost:9988?streamid=#!::r=another_stream,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