Versions Compared

Key

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

...

Code Block
languagejs
themeRDark
{
 "message":"connection",
 "data":
   [
     {
       "appKey":"defaultApp",
       "mediaProviders":["WebRTC","MSE","WSPlayer"],
       "clientVersion":"0.5.28",
       "clientOSVersion":"5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36",
       "clientBrowserVersion":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36"
     }
   ]
}

Message parameters

ParameterDescription
appKeyServer application key to communicate with backend server while session goes
mediaProvidersList of suppoted publication or playback technologies
clientVersionClient SDK version
clientOSVersionClient OS version
clientBrowserVersionClient browser version

2. Server sends getUserData message

...

This message confirms successful WebSocket connection establishing and data receiving from client

Message parameters

ParameterDescription
useWSTunnelWS tunnel is used
useWsTunnelPacketization2WS tunnel packetization is used
useBase64BinaryEncodingBase64 encoding is used
mediaProvidersList of suppoted publication or playback technologies
authTokenAuthentication token, the same as session Id formed with client and server IP address and port
statusWebSocket session status
clientVersionClient SDK version
clientOSVersionClient OS version
clientBrowserVersionClient browser version
forceLoggerLogger is forced
keepAliveKeep Alive is used

3. Server sends getVersion message

...

Code Block
languagejs
themeRDark
{
  "message":"publishStream",
  "data":
    [
      {
        "mediaSessionId":"90e14ad0-fdb2-11e8-bce2-a3f72476fb49",
        "name":"test",
        "published":true,
        "hasVideo":true,
        "hasAudio":true,
        "status":"PENDING",
        "record":false,
        "mediaProvider":"WebRTC",
        "sdp":"v=0\r\no=- 1712288193115840199 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS EZ5Uy6UkPtEoScWkyAcP5rabBY6buERZjQpH\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13  110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:qgOt\r\na=ice-pwd:KEfomSLSL4Pxj78N6T3/HAMY\r\na=ice-options:trickle\r\na=fingerprint:sha-256 EE:BC:55:18:45:6C:B4:5C:28:6F:5D:F9:42:63:1B:A2:99:8D:7A:0B:19:C3:F5:62:12:63:82:B6:F0:2C:36:E2\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendonly\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\na=ssrc:3498121776 cname:Ft3gt16szZ3kAllO\r\na=ssrc:3498121776 msid:EZ5Uy6UkPtEoScWkyAcP5rabBY6buERZjQpH 55944815-d49b-4ab2-bc19-3ecdca00b4a2\r\na=ssrc:3498121776 mslabel:EZ5Uy6UkPtEoScWkyAcP5rabBY6buERZjQpH\r\na=ssrc:3498121776 label:55944815-d49b-4ab2-bc19-3ecdca00b4a2\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 123 127 122 125 107 108 109 124\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:qgOt\r\na=ice-pwd:KEfomSLSL4Pxj78N6T3/HAMY\r\na=ice-options:trickle\r\na=fingerprint:sha-256 EE:BC:55:18:45:6C:B4:5C:28:6F:5D:F9:42:63:1B:A2:99:8D:7A:0B:19:C3:F5:62:12:63:82:B6:F0:2C:36:E2\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:10 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07\r\na=sendonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 profile-id=0\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 H264/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:102 H264/90000\r\na=rtcp-fb:102 goog-remb\r\na=rtcp-fb:102 transport-cc\r\na=rtcp-fb:102 ccm fir\r\na=rtcp-fb:102 nack\r\na=rtcp-fb:102 nack pli\r\na=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\r\na=rtpmap:123 rtx/90000\r\na=fmtp:123 apt=102\r\na=rtpmap:127 H264/90000\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 transport-cc\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:122 rtx/90000\r\na=fmtp:122 apt=127\r\na=rtpmap:125 H264/90000\r\na=rtcp-fb:125 goog-remb\r\na=rtcp-fb:125 transport-cc\r\na=rtcp-fb:125 ccm fir\r\na=rtcp-fb:125 nack\r\na=rtcp-fb:125 nack pli\r\na=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\r\na=rtpmap:107 rtx/90000\r\na=fmtp:107 apt=125\r\na=rtpmap:108 red/90000\r\na=rtpmap:109 rtx/90000\r\na=fmtp:109 apt=108\r\na=rtpmap:124 ulpfec/90000\r\na=ssrc-group:FID 3064307282 2143201641\r\na=ssrc:3064307282 cname:Ft3gt16szZ3kAllO\r\na=ssrc:3064307282 msid:EZ5Uy6UkPtEoScWkyAcP5rabBY6buERZjQpH 77c7bd16-9a65-4f62-9d01-6ecdd3e58f8a\r\na=ssrc:3064307282 mslabel:EZ5Uy6UkPtEoScWkyAcP5rabBY6buERZjQpH\r\na=ssrc:3064307282 label:77c7bd16-9a65-4f62-9d01-6ecdd3e58f8a\r\na=ssrc:2143201641 cname:Ft3gt16szZ3kAllO\r\na=ssrc:2143201641 msid:EZ5Uy6UkPtEoScWkyAcP5rabBY6buERZjQpH 77c7bd16-9a65-4f62-9d01-6ecdd3e58f8a\r\na=ssrc:2143201641 mslabel:EZ5Uy6UkPtEoScWkyAcP5rabBY6buERZjQpH\r\na=ssrc:2143201641 label:77c7bd16-9a65-4f62-9d01-6ecdd3e58f8a\r\n",
        "bitrate":0,
        "minBitrate":0,
        "maxBitrate":0
      }
    ]
}

Message parameters

ParameterDescription
mediaSessionIdWebRTC media session Id
namePublished stream name
hasVideoStream has video
hasAudioStream has audio
statusStream status
recordStream should be recorded on server
mediaProviderList of suppoted publication or playback technologies
sdpClient SDP
bitrateBitrate (will set while publishing if 0)
minBitrateMinimum bitrate (no limits if 0)
maxBitrateMaximum bitrate (no limits if 0)

2. Server sends setRemoteSDP message

...

Code Block
languagejs
themeRDark
{
  "message":"notifyStreamStatusEvent",
  "data":
    [
      {
        "mediaSessionId":"90e14ad0-fdb2-11e8-bce2-a3f72476fb49",
        "name":"test",
        "published":true,
        "hasVideo":true,
        "hasAudio":true,
        "status":"PUBLISHING",
        "audioCodec":"opus",
        "videoCodec":"H264",
        "record":false,
        "width":0,
        "height":0,
        "bitrate":0,
        "minBitrate":0,
        "maxBitrate":0,
        "quality":0,
        "createDate":1544579813186,
        "streamInfo":
          {
            "nodeId":null,
            "appKey":null,
            "sessionId":null,
            "mediaSessionId":"90e14ad0-fdb2-11e8-bce2-a3f72476fb49",
            "name":"test",
            "samplingTime":null,
            "recordTimestamp":null,
            "recordStarted":false
          },
        "mediaProvider":"WebRTC"
      }
    ]
}

Message parameters

ParameterDescription
mediaSessionIdWebRTC media session Id
namePublished stream name
publishedStream is published
hasVideoStream has video
hasAudioStream has audio
statusStream status
audioCodecAudio codec
videoCodecVideo codec
recordStream is recorded on server
widthPicture width (set while publishing if 0)
heightPicture height (set while publishing if 0)
bitrateBitrate (will set while publishing if 0)
minBitrateMinimum bitrate (no limits if 0)
maxBitrateMaximum bitrate (no limits if 0)
qualityStream quality
createDateCreation date as integer
streamInfoAdditional stream information
mediaProviderPublishing technology

unpublish

When stopping a stream publishing, messages exchange flow as follows:

...

Code Block
languagejs
themeRDark
{
  "message":"unPublishStream",
  "data":
    [
      {
        "mediaSessionId":"1d91ae20-fdb3-11e8-bddf-9b115426f01b",
        "name":"test",
        "published":true,
        "hasVideo":true,
        "hasAudio":true,
        "status":"PUBLISHING",
        "record":false
      }
    ]
}

Message parameters

ParameterDescription
mediaSessionIdWebRTC media session Id
namePublished stream name
publishedStream is published
hasVideoStream has video
hasAudioStream has audio
statusStream status
recordStream is recorded on server

2. Server stops publishing and sends notifyStreamStatusEvent message

Code Block
languagejs
themeRDark
{
  "message":"notifyStreamStatusEvent",
  "data":
    [
      {
        "mediaSessionId":"1d91ae20-fdb3-11e8-bddf-9b115426f01b",
        "name":"test",
        "published":true,
        "hasVideo":true,
        "hasAudio":true,
        "status":"UNPUBLISHED",
        "audioCodec":"opus",
        "videoCodec":"H264",
        "info":"Stopped by publisher stop",
        "record":false,
        "width":320,
        "height":240,
        "bitrate":0,
        "minBitrate":0,
        "maxBitrate":0,
        "quality":0,
        "createDate":1544580045898,
        "streamInfo":
          {
            "nodeId":null,
            "appKey":null,
            "sessionId":null,
            "mediaSessionId":"1d91ae20-fdb3-11e8-bddf-9b115426f01b",
            "name":"test",
            "samplingTime":null,
            "recordTimestamp":null,
            "recordStarted":false
          },
        "mediaProvider":"WebRTC"
      }
    ]
}

Message parameters

ParameterDescription
mediaSessionIdWebRTC media session Id
namePublished stream name
publishedStream is published
hasVideoStream has video
hasAudioStream has audio
statusStream status
audioCodecAudio codec
videoCodecVideo codec
recordStream is recorded on server
widthPicture width (set while publishing if 0)
heightPicture height (set while publishing if 0)
bitrateBitrate (will set while publishing if 0)
minBitrateMinimum bitrate (no limits if 0)
maxBitrateMaximum bitrate (no limits if 0)
qualityStream quality
createDateCreation date as integer
streamInfoAdditional stream information
mediaProviderPublishing technology

play

When playing a stream, messages exchange flow as follows:

...

Code Block
languagejs
themeRDark
{
  "message":"playStream",
  "data":
    [
      {
        "mediaSessionId":"22588500-fdb3-11e8-bddf-9b115426f01b",
        "name":"test",
        "published":false,
        "hasVideo":true,
        "hasAudio":true,
        "status":"PENDING",
        "record":false,
        "width":0,
        "height":0,
        "mediaProvider":"WebRTC",
        "sdp":"v=0\r\no=- 6636414462219466101 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:33IG\r\na=ice-pwd:R78vJJetyP2WeWpU6QWKGbJA\r\na=ice-options:trickle\r\na=fingerprint:sha-256 72:67:0A:92:8B:C2:CB:13:4E:7F:66:BB:AF:99:4A:0C:D9:C3:C1:3E:B9:B8:24:EB:2E:64:39:B2:19:76:85:09\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 123 127 122 125 107 108 109 124\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:33IG\r\na=ice-pwd:R78vJJetyP2WeWpU6QWKGbJA\r\na=ice-options:trickle\r\na=fingerprint:sha-256 72:67:0A:92:8B:C2:CB:13:4E:7F:66:BB:AF:99:4A:0C:D9:C3:C1:3E:B9:B8:24:EB:2E:64:39:B2:19:76:85:09\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:10 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 profile-id=0\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 H264/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:102 H264/90000\r\na=rtcp-fb:102 goog-remb\r\na=rtcp-fb:102 transport-cc\r\na=rtcp-fb:102 ccm fir\r\na=rtcp-fb:102 nack\r\na=rtcp-fb:102 nack pli\r\na=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\r\na=rtpmap:123 rtx/90000\r\na=fmtp:123 apt=102\r\na=rtpmap:127 H264/90000\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 transport-cc\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:122 rtx/90000\r\na=fmtp:122 apt=127\r\na=rtpmap:125 H264/90000\r\na=rtcp-fb:125 goog-remb\r\na=rtcp-fb:125 transport-cc\r\na=rtcp-fb:125 ccm fir\r\na=rtcp-fb:125 nack\r\na=rtcp-fb:125 nack pli\r\na=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\r\na=rtpmap:107 rtx/90000\r\na=fmtp:107 apt=125\r\na=rtpmap:108 red/90000\r\na=rtpmap:109 rtx/90000\r\na=fmtp:109 apt=108\r\na=rtpmap:124 ulpfec/90000\r\n",
        "bitrate":0,
        "minBitrate":0,
        "maxBitrate":0,
        "quality":0
      }
    ]
}

Message parameters

ParameterDescription
mediaSessionIdWebRTC media session Id
namePublished stream name
publishedStream is published (ignored)
hasVideoStream has video
hasAudioStream has audio
statusStream status
recordStream is recorded on server (ignoring)
widthPicture width (play as published if 0)
heightPicture height (play as published if 0)
mediaProviderPlayback technology
sdpClient SDP
bitrateBitrate (will set while playing if 0)
minBitrateMinimum bitrate (no limits if 0)
maxBitrateMaximum bitrate (no limits if 0)
qualityStream quality (play as published if 0)

2. Server sends notifyAudioCodec message

...

Code Block
languagejs
themeRDark
{
  "message":"notifyStreamStatusEvent",
  "data":
    [
      {
        "mediaSessionId":"22588500-fdb3-11e8-bddf-9b115426f01b",
        "name":"test",
        "published":false,
        "hasVideo":true,
        "hasAudio":true,
        "status":"PLAYING",
        "audioCodec":"opus",
        "videoCodec":"H264",
        "record":false,
        "width":0,
        "height":0,
        "bitrate":0,
        "minBitrate":0,
        "maxBitrate":0,
        "quality":0,
        "createDate":1544580053573,
        "streamInfo":
          {
            "nodeId":null,
            "appKey":null,
            "sessionId":null,
            "mediaSessionId":"22588500-fdb3-11e8-bddf-9b115426f01b",
            "name":"test",
            "samplingTime":null,
            "recordTimestamp":null,
            "recordStarted":false
          },
        "mediaProvider":"WebRTC"
      }
    ]
}

Message parameters

ParameterDescription
mediaSessionIdWebRTC media session Id
nameStream name to play
publishedStream is published
hasVideoStream has video
hasAudioStream has audio
statusStream status
audioCodecAudio codec
videoCodecVideo codec
recordStream is recorded on server
widthPicture width (set while playing if 0)
heightPicture height (set while playing if 0)
bitrateBitrate (will set while playing if 0)
minBitrateMinimum bitrate (no limits if 0)
maxBitrateMaximum bitrate (no limits if 0)
qualityStream quality
createDateCreation date as integer
streamInfoAdditional stream information
mediaProviderPublishing technology

4. Server sends notifyVideoFormat message

Code Block
languagejs
themeRDark
{
  "message":"notifyVideoFormat",
  "data":
    [
      {
        "streamerVideoWidth":320,
        "streamerVideoHeight":240,
        "mediaSessionId":"22588500-fdb3-11e8-bddf-9b115426f01b",
        "status":"RESIZE"
      }
    ]
}

Message parameters

ParameterDescription
streamerVideoWidthStreamer picture width
streamerVideoHeightStreamer picture height
mediaSessionIdWebRTC media session Id
statusStream video status

stop

When stopping a stream playback, messages exchange flow as follows:

...

Code Block
languagephp
themeRDark
{
  "message":"stopStream",
  "data":
    [
      {
        "mediaSessionId":"22588500-fdb3-11e8-bddf-9b115426f01b",
        "name":"test",
        "published":false,
        "hasVideo":true,
        "hasAudio":true,
        "status":"PLAYING",
        "record":false
      }
    ]
}

Message parameters

ParametersDescription
mediaSessionIdWebRTC media session Id
namePublished stream name
publishedStream is published
hasVideoStream has video
hasAudioStream has audio
statusStream status
recordStream is recorded on server

2. Server stops playback and sends notifyStreamStatusEvent message

Code Block
languagejs
themeRDark
{
  "message":"notifyStreamStatusEvent",
  "data":
    [
      {
        "mediaSessionId":"22588500-fdb3-11e8-bddf-9b115426f01b",
        "name":"test",
        "published":false,
        "hasVideo":true,
        "hasAudio":true,
        "status":"STOPPED",
        "audioCodec":"opus",
        "videoCodec":"H264",
        "info":"Stopped by user",
        "record":false,
        "width":320,
        "height":240,
        "bitrate":0,
        "minBitrate":0,
        "maxBitrate":0,
        "quality":0,
        "createDate":1544580053573,
        "streamInfo":
          {
            "nodeId":null,
            "appKey":null,
            "sessionId":null,
            "mediaSessionId":"22588500-fdb3-11e8-bddf-9b115426f01b",
            "name":"test",
            "samplingTime":null,
            "recordTimestamp":null,
            "recordStarted":false
          },
        "mediaProvider":"WebRTC"
      }
    ]
}

Messages parameters

ParameterDescription
mediaSessionIdWebRTC media session Id
nameStream name to play
publishedStream is published
hasVideoStream has video
hasAudioStream has audio
statusStream status
audioCodecAudio codec
videoCodecVideo codec
infoStream status text description
recordStream is recorded on server
widthPicture width (set while playing if 0)
heightPicture height (set while playing if 0)
bitrateBitrate (will set while playing if 0)
minBitrateMinimum bitrate (no limits if 0)
maxBitrateMaximum bitrate (no limits if 0)
qualityStream quality
createDateCreation date as integer
streamInfoAdditional stream information
mediaProviderPublishing technology

Publishing

...

/playback stream metrics

Since build 5.2.576, main publishing|playback stream metrics were added to messages inboundVideoRate, outboundVideoRate, which are intended to control publishing/playback channel quality:

Code Block
languagejs
themeRDark
{
 "message":"inboundVideoRate",
 "data":
  [
    {
     "mediaSessionId":"a12145d0-7eee-11ea-9833-9da59e0cc100",
     "videoRate":704856,
     "fps":31,
     "nack":0,
     "pli":0,
     "lostPackets":0,
     "width":640,
     "height":360
    }
  ]
}
{
 "message":"outboundVideoRate",
 "data":
  [
    {
     "mediaSessionId":"0040ed40-7eef-11ea-9833-9da59e0cc100",
     "videoRate":685256,
     "fps":30,
     "nack":0,
     "pli":13,
     "lostPackets":0,
     "width":640,
     "height":360
    }
  ]
}

Messages parameters

ParameterDescription
mediaSessionIdWebRTC media session Id
videoRateVideo bitrate, bps
fpsFPS
nackNACK packets count
pliPLI queries count
lostPacketsLost packets count
widthPicture width
heightPicture height