Versions Compared

Key

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

...

  • HTTP: http://streaming.flashphoner.com:90918081/rest-api/push/startup
  • HTTPS: https://streaming.flashphoner.com:88888444/rest-api/push/startup

Здесь:

  • streaming.flashphoner.com - адрес WCS-сервера
  • 9091 8081 - стандартный REST / HTTP порт WCS-сервера
  • 88888444 - стандартный HTTPS порт
  • rest-api - обязательный префикс
  • /push/startup - используемый REST-вызов

 RESTREST-вызовы и статусы ответа

REST-метод

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

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

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

Описание

/push/startup

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

409 - Conflict

500 - Internal error

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


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


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

/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

options

Опции транспондера

{"action": "mute"}

mediaSessionId

Уникальный идентификатор транспондера

eume87rjk3df1i9u14elffga6t

width

Ширина изображения

320

height

Высота изображения

240

muted

Звук приглушен

true

soundEnabled

Звук отключен

true

soundFile

Файл звуковой дорожки

test.wav

loop

Повтор

false

...

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

Code Block
languagejs
themeRDark
rtmp://myrtmpserver.com:1935/liveapp_name/stream?param1user=test1user1&param2pass=test2

...

pass1

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

Code Block
languagebashjs
themeRDark
rtmp_transponder_full_url=true

Тогда при отправке WCS-серверу запроса /push/startup или вызове createStream() с параметрами

Code Block
languagejs
themeRDark
{
"streamName": "rtmp_test",
"rtmpUrl": "rtmp://myrtmpserver.com:1935/live/stream?param1=test1&param2=test2"
}

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

Code Block
languagejs
themeRDark
onConnect: AMFDataList: [0] connect, [1] 1.0, [2] object
{Obj[]: app: "live/stream?param1=test1&param2=test2", type: "nonprivate", flashVer: "FMLE/3.0 (compatible; Lavf54.59.106)", swfUrl: "://myrtmpserver.com:1935/app_name/app_instance/?user=user1&pass=pass1

Здесь

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

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

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

Image Added

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

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

Code Block
languagebash
themeRDark
rtmp_transponder_full_url=true

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

Code Block
languagejs
themeRDark
rtmp://myrtmpserver.com:1935/live/stream?param1=test1&param2=test2", tcUrl: "app_name/stream_name

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

Code Block
languagejs
themeRDark
rtmp://myrtmpserver.com:1935/live/stream?param1=test1&param2=test2"}/app_name/app_instance/stream_name

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

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

...