...
REST-метод | Пример тела REST-запроса | Пример ответа | Статусы ответа | Описание | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/push/startup |
|
| 400 - Bad request 409 - Conflict 500 - Internal error | Создает транспондер, который подписывается на указанный поток и отправляет медиа трафик на указанный rtmpUrl. Имя потока, указанное в запросе, может быть именем уже публикуемого потока или именем зарезервированным при создании SIP-звонка (для отправки медиа трафика, полученного со стороны SIP). Если транспондер для такого потока и rtmpUrl уже существует, возвращает 409 Conflict. Если rtmpUrl не указан, или указан неверно и не может быть найден по DNS, возвращается 400 Bad request | ||||||||||||||
/push/find |
|
| 404 - Transponder not found 500 - Internal error | Найти транспондеры по фильтру | ||||||||||||||
/push/find_all |
|
| 404 - Not found any transponder 500 - Internal error | Найти все транспондеры | ||||||||||||||
/push/terminate |
|
| 404 - Not found transponder 500 - Internal error | Завершить работу транспондера | ||||||||||||||
/push/mute |
| void | 404 - Not found transponder 500 - Internal error | Выключить аудио | ||||||||||||||
/push/unmute |
| void | 404 - Not found transponder 500 - Internal error | Включить аудио | ||||||||||||||
/push/sound_on |
| void | 404 - Not found transponder 404 - No such file 500 - Internal error | Вставить аудио из RIFF WAV файла из директории /usr/local/FlashphonerWebCallServer/media/ на WCS-сервере | ||||||||||||||
/push/sound_off |
| void | 404 - Not found transponder 500 - Internal error | Завершить вставку аудио из файла |
...
Имя параметра | Описание | Пример |
---|---|---|
streamName | Имя ретранслируемого потока | streamName |
rtmpUrl | URL сервера, на который производится ретрансляция | |
rtmpFlashVersion | Версия Flash RTMP-клиента | LNX 76.219.189.0 |
options | Опции транспондера | {"action": "mute"} |
mediaSessionId | Уникальный идентификатор транспондера | eume87rjk3df1i9u14elffga6t |
width | Ширина изображения | 320 |
height | Высота изображения | 240 |
bitrate | Битрейт видео, кбит/с | 500 |
keyFrameInterval | Интервал ключевых кадров видео | 60 |
fps | Частота кадров видео | 30 |
muted | Звук приглушен | true |
soundEnabled | Звук отключен | true |
soundFile | Файл звуковой дорожки | test.wav |
loop | Повтор | false |
rtmpTransponderFullUrl | Брать имя для публикации на RTMP сервере из RTMP URL | false |
Начиная со сборки 5.2.785, добавлены следующие параметры: rtmpFlashVersion, keyFrameInterval и fps.
В сборке 5.2.1043 добавлен параметр bitrate.
Параметр options может быть использован, чтобы выключить аудио или вставить аудио из файла при создании транспондера.
...
Начиная со сборки 5.2.785, добавлены другие два параметра, с которыми включается транскодинг: keyFrameInterval и fps. Транскодинг для ретранслируемого потока включается, если задан любой из них или высота картинки.
Указание имени потока для публикации на RTMP сервере
По умолчанию, поток будет опубликован на RTMP сервере с тем же именем, под которым он опубликован на WCS, и префиксом rtmp_
, например rtmp_test
. Это поведение меняется настройками
...
theme | RDark |
---|
...
В сборке 5.2.1043 добавлен параметр bitrate, который также включает транскодинг при ретрансляции.
Таким образом, поток при ретрансляции боде транскодирован с любыми из следующих параметров:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"streamName": "name",
"rtmpUrl": "rtmp://localhost:1935/live",
"height": 240,
"keyFrameInterval": 60,
"fps": 30,
"bitrate": 500
} |
Указание имени потока для публикации на RTMP сервере
По умолчанию, поток будет опубликован на RTMP сервере с тем же именем, под которым он опубликован на WCS, и префиксом rtmp_
, например rtmp_test
. Это поведение меняется настройками
Code Block | ||
---|---|---|
| ||
rtmp_transponder_full_url=true
rtmp_transponder_stream_name_prefix= |
...
Существует возможность передать параметры запроса серверу, на который ретранслируется поток, указав их в URL сервера, напримерв URL сервера, например
Code Block | ||||
---|---|---|---|---|
| ||||
rtmp://myrtmpserver.com:1935/app_name/?user=user1&pass=pass1 |
или, если публикация предполагается в отдельный экземпляр приложения на RTMP-сервере
Code Block | ||||
---|---|---|---|---|
| ||||
rtmp://myrtmpserver.com:1935/app_name/app_instance/?user=user1&pass=pass1 |
Здесь
- myrtmpserver.com - имя RTMP-сервера
- app_name - имя приложения на RTMP-сервере
- app_instance - имя экземпляра приложения на RTMP-сервере
или, если публикация предполагается в отдельный экземпляр приложения на RTMP-сервере
Code Block | ||||
---|---|---|---|---|
| ||||
rtmp://myrtmpserver.com:1935/app_name/app_instance/?user=user1&pass=pass1 |
Здесь
- myrtmpserver.com - имя RTMP-сервера
- app_name - имя приложения на RTMP-сервере
- app_instance - имя экземпляра приложения на RTMP-сервере
Имя потока указывается в параметре RESTИмя потока указывается в параметре REST-запроса /push/startup 'streamName' или в соответствующей опции при создании потока.
Пример установки RTMP-соединения с передачей параметров запроса
Передача имени потока в URL
В некоторых случаях имя потока при публикации необходимо передать в URL. Для этого необходимо указать настройку в файле flashphoner.properties
Code Block | ||||
---|---|---|---|---|
| ||||
rtmp_transponder_full_url=true |
Тогда, для публикации в параметре REST-запроса /push/startup 'streamNamertmpUrl' или в соответствующей опции при создании потока .
Пример установки RTMP-соединения с передачей параметров запроса
Передача имени потока в URL
В некоторых случаях имя потока при публикации необходимо передать в URL. Для этого необходимо указать настройку в файле flashphoner.propertiesуказывается URL вида
Code Block | ||||
---|---|---|---|---|
| ||||
rtmp://myrtmpserver.com:1935/app_name/stream_name |
или, для публикации в другой экземпляр приложения
Code Block | ||||
---|---|---|---|---|
| ||||
rtmp_transponder_full_url=true |
...
| |||
rtmp://myrtmpserver.com:1935/app_name/app_instance/stream_name |
В этом случае параметр REST-запроса /push/startup 'rtmpUrl' или в соответствующей опции при создании потока указывается URL вида'streamName' или соответствующая опция при создании потока игнорируется.
Автоматическая ретрансляция на указанный сервер
WCS-сервер может автоматически ретранслировать все публикуемые на нем потоки на заданный RTMP-сервер. Для того, чтобы активировать эту возможность, необходимо в файле flashphoner.properties указать следующие настройки:
Code Block | ||||
---|---|---|---|---|
| ||||
rtmp://myrtmpserver.com:1935/app_name/stream_name |
или, для публикации в другой экземпляр приложения
Code Block | ||||
---|---|---|---|---|
| ||||
_push_auto_start=true rtmp_push_auto_start_url=rtmp://myrtmpserverrtmp.server.com:1935/app_name/app_instance/stream_name |
В этом случае параметр REST-запроса /push/startup 'streamName' или соответствующая опция при создании потока игнорируется.
Автоматическая ретрансляция на указанный сервер (не для рабочего окружения)
WCS-сервер может автоматически ретранслировать все публикуемые на нем потоки на заданный RTMP-сервер. Для того, чтобы активировать эту возможность, необходимо в файле flashphoner.properties указать следующие настройки:
Code Block | |
---|---|
language | bashlive |
Здесь rtmp.server.com - имя RTMP-сервера, на который должны ретранслироваться все потоки с WCS.
В сборке 5.2.1110 добавлена возможность указать параметры аутентификации
Code Block | ||
---|---|---|
| ||
rtmp_push_auto_start=true start_url=rtmp://user:password@rtmp.server.com:1935/live |
или
Code Block | ||
---|---|---|
| ||
rtmp_push_auto_start_url=rtmp://rtmp.server.com:1935/ |
Здесь rtmp.server.com - имя RTMP-сервера, на который должны ретранслироваться все потоки с WCS.
...
live?username=user&password=pwd |
Параметры будут переданы в команде RTMP connect.
Ограничения
Для автоматической ретрансляции может быть указан только один RTMP URL.
Автоматическое восстановление соединения при закрытии канала
...
4. При ретрансляции FullHD, 2K, 4K потоков при больших размерах c большими размерами кадров, пакеты могут не помещаться в буфер сокета на отправку, из-за чего в некоторых плеерах могут наблюдаться артефакты
...