XMeet

Mediasoup视频会议


2. getRouterRtpCapabilities

<h5>简要描述</h5> <ul> <li>与SFU服务器建立连接以后,第一条发送消息就是请求RTP路由器能力信息</li> <li>通过返回的RTP能力信息建立mediasoup::device信息</li> </ul> <h5>请求方式</h5> <ul> <li>Websocket.Send </li> </ul> <h5>参数</h5> <p><a href="https://www.showdoc.com.cn/1591639269927039/7912937086999827" title="通用协议部分点击这里查看">通用协议部分点击这里查看</a></p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">(空消息)</td> <td style="text-align: left;"></td> <td style="text-align: left;"></td> <td></td> <td></td> </tr> </tbody> </table> <h5>请求示例</h5> <pre><code>{ "request": true, "id": 8062875, "method": "getRouterRtpCapabilities", "data": {} }</code></pre> <h5>返回示例</h5> <pre><code>{ "codecs": [ { "channels": 2, "clockRate": 48000, "kind": "audio", "mimeType": "audio/opus", "parameters": {}, "preferredPayloadType": 100, "rtcpFeedback": [ { "parameter": "", "type": "transport-cc" } ] }, { "clockRate": 90000, "kind": "video", "mimeType": "video/VP8", "parameters": { "x-google-start-bitrate": 1000 }, "preferredPayloadType": 101, "rtcpFeedback": [ { "parameter": "", "type": "nack" }, { "parameter": "pli", "type": "nack" }, { "parameter": "fir", "type": "ccm" }, { "parameter": "", "type": "goog-remb" }, { "parameter": "", "type": "transport-cc" } ] }, { "clockRate": 90000, "kind": "video", "mimeType": "video/rtx", "parameters": { "apt": 101 }, "preferredPayloadType": 102, "rtcpFeedback": [] }, { "clockRate": 90000, "kind": "video", "mimeType": "video/VP9", "parameters": { "profile-id": 2, "x-google-start-bitrate": 1000 }, "preferredPayloadType": 103, "rtcpFeedback": [ { "parameter": "", "type": "nack" }, { "parameter": "pli", "type": "nack" }, { "parameter": "fir", "type": "ccm" }, { "parameter": "", "type": "goog-remb" }, { "parameter": "", "type": "transport-cc" } ] }, { "clockRate": 90000, "kind": "video", "mimeType": "video/rtx", "parameters": { "apt": 103 }, "preferredPayloadType": 104, "rtcpFeedback": [] }, { "clockRate": 90000, "kind": "video", "mimeType": "video/H264", "parameters": { "level-asymmetry-allowed": 1, "packetization-mode": 1, "profile-level-id": "4d0032", "x-google-start-bitrate": 1000 }, "preferredPayloadType": 105, "rtcpFeedback": [ { "parameter": "", "type": "nack" }, { "parameter": "pli", "type": "nack" }, { "parameter": "fir", "type": "ccm" }, { "parameter": "", "type": "goog-remb" }, { "parameter": "", "type": "transport-cc" } ] }, { "clockRate": 90000, "kind": "video", "mimeType": "video/rtx", "parameters": { "apt": 105 }, "preferredPayloadType": 106, "rtcpFeedback": [] }, { "clockRate": 90000, "kind": "video", "mimeType": "video/H264", "parameters": { "level-asymmetry-allowed": 1, "packetization-mode": 1, "profile-level-id": "42e01f", "x-google-start-bitrate": 1000 }, "preferredPayloadType": 107, "rtcpFeedback": [ { "parameter": "", "type": "nack" }, { "parameter": "pli", "type": "nack" }, { "parameter": "fir", "type": "ccm" }, { "parameter": "", "type": "goog-remb" }, { "parameter": "", "type": "transport-cc" } ] }, { "clockRate": 90000, "kind": "video", "mimeType": "video/rtx", "parameters": { "apt": 107 }, "preferredPayloadType": 108, "rtcpFeedback": [] } ], "headerExtensions": [ { "direction": "sendrecv", "kind": "audio", "preferredEncrypt": false, "preferredId": 1, "uri": "urn:ietf:params:rtp-hdrext:sdes:mid" }, { "direction": "sendrecv", "kind": "video", "preferredEncrypt": false, "preferredId": 1, "uri": "urn:ietf:params:rtp-hdrext:sdes:mid" }, { "direction": "recvonly", "kind": "video", "preferredEncrypt": false, "preferredId": 2, "uri": "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id" }, { "direction": "recvonly", "kind": "video", "preferredEncrypt": false, "preferredId": 3, "uri": "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id" }, { "direction": "sendrecv", "kind": "audio", "preferredEncrypt": false, "preferredId": 4, "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" }, { "direction": "sendrecv", "kind": "video", "preferredEncrypt": false, "preferredId": 4, "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" }, { "direction": "recvonly", "kind": "audio", "preferredEncrypt": false, "preferredId": 5, "uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" }, { "direction": "sendrecv", "kind": "video", "preferredEncrypt": false, "preferredId": 5, "uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" }, { "direction": "sendrecv", "kind": "video", "preferredEncrypt": false, "preferredId": 6, "uri": "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07" }, { "direction": "sendrecv", "kind": "video", "preferredEncrypt": false, "preferredId": 7, "uri": "urn:ietf:params:rtp-hdrext:framemarking" }, { "direction": "sendrecv", "kind": "audio", "preferredEncrypt": false, "preferredId": 10, "uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level" }, { "direction": "sendrecv", "kind": "video", "preferredEncrypt": false, "preferredId": 11, "uri": "urn:3gpp:video-orientation" }, { "direction": "sendrecv", "kind": "video", "preferredEncrypt": false, "preferredId": 12, "uri": "urn:ietf:params:rtp-hdrext:toffset" }, { "direction": "sendrecv", "kind": "video", "preferredEncrypt": false, "preferredId": 13, "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time" }, { "direction": "sendrecv", "kind": "audio", "preferredEncrypt": false, "preferredId": 13, "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time" } ] }</code></pre> <h5>返回参数说明</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">codecs</td> <td style="text-align: left;">object</td> <td>服务器支持的编码器相关信息</td> </tr> <tr> <td style="text-align: left;">headerExtensions</td> <td style="text-align: left;">object</td> <td>服务器支持的扩展标头相关信息</td> </tr> </tbody> </table> <h5>备注</h5> <p>nlohmann::json&amp; msgJson; mediasoupclient::PeerConnection::Options&amp; option; mediasoupclient::Device-&gt;Load(msgJson, &amp;option); 通过返回的消息内容, 便可通过 pDevice-&gt;Load(msgJson, &amp;option) 方法创建mediasoup的设备对象了。 当Devcice成功加载RTP能力数据以后,便知道了所有允许的媒体编解码器和其他设置的方式。</p> <ul> <li>更多返回错误代码请看首页的错误代码描述</li> </ul>

页面列表

ITEM_HTML