Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

REST-метод

Пример тела REST-запроса

Пример ответа

Статусы ответа

Описание

/push/startup

Code Block
languagejs
themeRDark
{
"streamName": "name",
"rtmpUrl": "rtmp://localhost:1935/live",
"rtmpTransponderFullUrl": false
"options": {}
}
Code Block
themeRDark
{
"mediaSessionId": "eume87rjk3df1i9u14elffga6t",
"streamName": "rtmp_name",
"rtmpUrl": "rtmp://localhost:1935/live",
"width": 320,
"height": 240,
"muted": false,
"soundEnabled": false,
"options": {}
}

400 - Bad request

409 - Conflict

500 - Internal error

Создает транспондер, который подписывается на указанный поток и отправляет медиа трафик на указанный rtmpUrl.


Имя потока, указанное в запросе, может быть именем уже публикуемого потока или именем зарезервированным при создании SIP-звонка (для отправки медиа трафика, полученного со стороны SIP).


Если транспондер для такого потока и rtmpUrl уже существует, возвращает 409 Conflict.


Если rtmpUrl не указан, или указан неверно и не может быть найден по DNS, возвращается 400 Bad request

/push/find

Code Block
languagejs
themeRDark
{
"streamName": "name",
"rtmpUrl": "rtmp://localhost:1935/live",
}
Code Block
languagejs
themeRDark
[{
"mediaSessionId": "eume87rjk3df1i9u14elffga6t",
"streamName": "rtmp_name",
"rtmpUrl": "rtmp://localhost:1935/live",
"width": 320,
"height": 240,
"muted": false,
"soundEnabled": false,
"options": {}
}]

404 - Transponder not found

500 - Internal error

Найти транспондеры по фильтру

/push/find_all

 

Code Block
languagejs
themeRDark
[{
"mediaSessionId": "eume87rjk3df1i9u14elffga6t",
"streamName": "rtmp_name",
"rtmpUrl": "rtmp://localhost:1935/live",
"width": 320,
"height": 240,
"muted": false,
"soundEnabled": false,
"options": {}
}]

404 - Not found any transponder

500 - Internal error

Найти все транспондеры

/push/terminate

Code Block
languagejs
themeRDark
{
"mediaSessionId": "eume87rjk3df1i9u14elffga6t"
}

 

404 - Not found transponder

500 - Internal error

Завершить работу транспондера

/push/mute

Code Block
languagejs
themeRDark
{
"mediaSessionId": "eume87rjk3df1i9u14elffga6t"
}

void

404 - Not found transponder

500 - Internal error

Выключить аудио

/push/unmute

Code Block
languagejs
themeRDark
{
"mediaSessionId": "eume87rjk3df1i9u14elffga6t"
}

void

404 - Not found transponder

500 - Internal error

Включить аудио

/push/sound_on

Code Block
languagejs
themeRDark
{
"mediaSessionId": "eume87rjk3df1i9u14elffga6t"
"soundFile": "test.wav"
"loop": true
}


 

void

404 - Not found transponder

404 - No such file

500 - Internal error

Вставить аудио из RIFF WAV файла из директории /usr/local/FlashphonerWebCallServer/media/ на WCS-сервере

/push/sound_off

Code Block
languagejs
themeRDark
{
"mediaSessionId": "eume87rjk3df1i9u14elffga6t"
}

void

404 - Not found transponder

500 - Internal error

Завершить вставку аудио из файла

...

Имя параметра

Описание

Пример

streamName

Имя ретранслируемого потока

streamName

rtmpUrl

URL сервера, на который производится ретрансляция

rtmp://localhost:1935/live

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 URLfalse

Начиная со сборки 5.2.785, добавлены следующие параметры: rtmpFlashVersion, keyFrameInterval и fps.

В сборке 5.2.1043 добавлен параметр bitrate.

Параметр options может быть использован, чтобы выключить аудио или вставить аудио из файла при создании транспондера.

...

Начиная со сборки 5.2.785, добавлены другие два параметра, с которыми включается транскодинг: keyFrameInterval и fps. Транскодинг для ретранслируемого потока включается, если задан любой из них или высота картинки.

Указание имени потока для публикации на RTMP сервере

По умолчанию, поток будет опубликован на RTMP сервере с тем же именем, под которым он опубликован на WCS, и префиксом rtmp_, например rtmp_test. Это поведение меняется настройками

...

themeRDark

...

В сборке 5.2.1043 добавлен параметр bitrate,  который также включает транскодинг при ретрансляции.

Таким образом, поток при ретрансляции боде транскодирован с любыми из следующих параметров:

Code Block
languagejs
themeRDark
{
"streamName": "name",
"rtmpUrl": "rtmp://localhost:1935/live",
"height": 240,
"keyFrameInterval": 60,
"fps": 30,
"bitrate": 500
}

Указание имени потока для публикации на RTMP сервере

По умолчанию, поток будет опубликован на RTMP сервере с тем же именем, под которым он опубликован на WCS, и префиксом rtmp_, например rtmp_test. Это поведение меняется настройками

Code Block
themeRDark
rtmp_transponder_full_url=true
rtmp_transponder_stream_name_prefix=

...

Существует возможность передать параметры запроса серверу, на который ретранслируется поток, указав их в URL сервера, напримерв URL сервера, например

Code Block
languagejs
themeRDark
rtmp://myrtmpserver.com:1935/app_name/?user=user1&pass=pass1

или, если публикация предполагается в отдельный экземпляр приложения на RTMP-сервере

Code Block
languagejs
themeRDark
rtmp://myrtmpserver.com:1935/app_name/app_instance/?user=user1&pass=pass1

Здесь

  • myrtmpserver.com - имя RTMP-сервера
  • app_name - имя приложения на RTMP-сервере
  • app_instance - имя экземпляра приложения на RTMP-сервере

или, если публикация предполагается в отдельный экземпляр приложения на RTMP-сервере

Code Block
languagejs
themeRDark
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-соединения с передачей параметров запроса

Image Added

Передача имени потока в URL

В некоторых случаях имя потока при публикации необходимо передать в URL. Для этого необходимо указать настройку в файле flashphoner.properties

Code Block
languagebash
themeRDark
rtmp_transponder_full_url=true

Тогда, для публикации в параметре REST-запроса /push/startup 'streamNamertmpUrl' или в соответствующей опции при создании потока .

Пример установки RTMP-соединения с передачей параметров запроса

Image Removed

Передача имени потока в URL

В некоторых случаях имя потока при публикации необходимо передать в URL. Для этого необходимо указать настройку в файле flashphoner.propertiesуказывается URL вида

Code Block
languagejs
themeRDark
rtmp://myrtmpserver.com:1935/app_name/stream_name

или, для публикации в другой экземпляр приложения

Code Block
languagebash
themeRDark
rtmp_transponder_full_url=true

...

js
themeRDark
rtmp://myrtmpserver.com:1935/app_name/app_instance/stream_name

В этом случае параметр REST-запроса /push/startup 'rtmpUrl' или в соответствующей опции при создании потока указывается URL вида'streamName' или соответствующая опция при создании потока игнорируется.

Автоматическая ретрансляция на указанный сервер

WCS-сервер может автоматически ретранслировать все публикуемые на нем потоки на заданный RTMP-сервер. Для того, чтобы активировать эту возможность, необходимо в файле flashphoner.properties указать следующие настройки:

Code Block
languagejsbash
themeRDark
rtmp://myrtmpserver.com:1935/app_name/stream_name

или, для публикации в другой экземпляр приложения

Code Block
languagejs
themeRDark
_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 указать следующие настройки:

bash
Code Block
language
live

Здесь rtmp.server.com - имя RTMP-сервера, на который должны ретранслироваться все потоки с WCS.

В сборке 5.2.1110 добавлена возможность указать параметры аутентификации

Code Block
themeRDark
rtmp_push_auto_start=true
start_url=rtmp://user:password@rtmp.server.com:1935/live

или

Code Block
themeRDark
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 большими размерами кадров, пакеты могут не помещаться в буфер сокета на отправку, из-за чего в некоторых плеерах могут наблюдаться артефакты

...