Versions Compared

Key

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

...

REST-метод

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

Пример тела REST-ответа

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

Описание

/pull/rtmp/pull

Code Block
languagejs
themeRDark
{
 "uri":"rtmp://myserver.com/live/myStream",
 "localStreamName":"stream1",
 "record": "false",
 "hasAudio": true,
 "hasVideo": true
}

409 - Conflict

500 - Internal error


Извлечь RTMP-поток по указанному URL


/pull/rtmp/find_all


Code Block
languagejs
themeRDark
{
"localMediaSessionId": "5a072377-73c1-4caf-abd3"
"localStreamName": "stream1"
"uri": "rtmp://myserver.com/live/myStream",
"status": "PROCESSED_REMOTE",
"hasAudio": true,
"hasVideo": true,
"record": false
}

200 – потоки найдены

404 – потоки не найдены

Найти все извлеченные RTMP-потоки

/pull/rtmp/terminate

Code Block
languagejs
themeRDark
{
 "uri":"rtmp://myserver.com/live/myStream"
}

200 - поток завершен

404 - поток не найден

Завершить извлеченный RTMP-поток

...

В сборке 5.2.724 добавлена возможность указать имя, под которым захваченный поток будет опубликован на сервере, при помощи параметра localStreamName. Если имя не указано, поток будет опубликован под именем, совпадающим с uri , как в предыдущих сборках.

...

При попытке повторного захвата потока с тем же URI запрос /pull/rtmp/pull  вернет 409 Conflict .  Если Если поток уже опубликован на сервере, необходимо подключаться к этому потоку.

Публикация потока только с аудио или только с видео

В сборке 5.2.1439 добавлена возможность указать в REST запросе, с какими составляющими захваченный поток будет опубликован на сервере. Например, для публикации потока только с видео

Code Block
languagejs
themeRDark
{
 "uri":"rtmp://myserver.com/live/myStream",
 "localStreamName":"stream1",
 "hasAudio": false,
 "hasVideo": true
}

Настройка

Управление параметрами кодеков

В каталоге /usr/local/FlashphonerWebCallServer/conf  может располагаться файл описания SDP для RTMP-агента rtmp_agent.sdp :

Code Block
languagebash
themeRDark
v=0
o=- 1988962254 1988962254 IN IP4 0.0.0.0
c=IN IP4 0.0.0.0
t=0 0
a=sdplang:en
m=video 0 RTP/AVP 95
a=rtpmap:95 H264/90000
a=fmtp:95 profile-level-id=42e01f;packetization-mode=1
a=sendonly
m=audio 0 RTP/AVP 103 96 97 98 99 100 102 108 104
a=rtpmap:108 mpeg4-generic/48000/12
a=rtpmap:96 mpeg4-generic/8000/12
a=rtpmap:97 mpeg4-generic/11025/12
a=rtpmap:98 mpeg4-generic/12000/12
a=rtpmap:99 mpeg4-generic/16000/12
a=rtpmap:100 mpeg4-generic/22050/12
a=rtpmap:104 mpeg4-generic/24000/12
a=rtpmap:102 mpeg4-generic/32000/12
a=rtpmap:103 mpeg4-generic/44100/12
a=recvonly

Для того, чтобы при записи захваченного потока на диск записывалось не только аудио, но и видео, необходимо в данном файле указать атрибут

Code Block
languagebash
themeRDark
a=sendonly

для видео.

Публикация потока без одной из составляющих

Если из файла rtmp_agent.sdp убрать аудио или видео составляющую, то захваченный поток будет опубликован на сервере без этой составляющей. Например. для публикации только видео SDP должно выглядеть так:

Code Block
themeRDark
v=0
o=- 1988962254 1988962254 IN IP4 0.0.0.0
c=IN IP4 0.0.0.0
t=0 0
a=sdplang:en
m=video 0 RTP/AVP 95
a=rtpmap:95 H264/90000
a=fmtp:95 profile-level-id=42e01f;packetization-mode=1
a=sendonly

Определение типа фрейма

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

Code Block
themeRDark
rtmp_detect_h264_frame_type=true

Краткое руководство по тестированию

...

В этом случае параметры будут переданы на сервер в RTMP сообщении connect.

При необходимости, параметры могут быть указаны и после имени приложения

...

В этом случае параметры также будут переданы на сервер в RTMP сообщении connect. Если поток запрашивается с другого WCS сервера по RTMP, параметры авторизации будут доступны в REST hook /connect.

...