Versions Compared

Key

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

...

REST-method

Example of REST-query

Example of REST response

Response status

Description

/pull/pull

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

409 - Conflict

500 - Internal error


Pull the RTMP stream at the specified URL


/pull/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 – streams are found

500 - Internal error

Find all pulled RTMP streams

/pull/terminate

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

200 - stream terminated

500 - Internal error

Terminate the pulled RTMP stream

...

Since build 5.2.724 it is possible to set the name to publish stream on server using localStreamName query parameter. If the parameter is not set, the stream name will be set to uri , as done in previous builds.

RTMP stream repeatedly capturing with the same URI

/pull/rtmp/pull  query returns 409 Conflict  while trying to repeatedly capture RTMP stream with the same URI.  If If the stream is already published on the server, it is necessary to subscribe to it.

Audio only or video only stream publishing

Since build 5.2.1439 it is possible to set in REST query how to publish an RTMP stream captured on WCS. For example, to publish a video only stream, set

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

Configuration

Codecs parameters definition

In the /usr/local/FlashphonerWebCallServer/conf  directory you can find the SDP description file for the RTMP agent rtmp_agent.sdp :

bash
Code Block
language
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

To enable recording of both audio and video (instead of audio only) during captured stream recording specify the following attribute in this file

Code Block
languagebash
themeRDark
a=sendonly

for video.

Publishing a stream without audio or video

If audio or video description is removed from rtmp_agent.sdp , an RTMP stream captured will be published on WCS without audio or video respectively. For example, use the following SDP to publish video only:

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

Frame type detection

Sometimes, RTMP stream source may set a media frame type incorrectly at RTMP protocol level. In this case frame type should be detected according to frame content. To enable this, use the following parameter added in build 5.2.1446

Code Block
themeRDark
rtmp_detect_h264_frame_type=true

Quick manual on testing

Capturing of an RTMP stream broadcast by another server using the REST-query /pull/rtmp/pull

...