Mediasoup Client设备加载RTP能力异常,无法生成音视频流
Mediasoup Client设备加载后无法生产音视频流:_canProduceByKind全为false
我尝试用从服务器获取的rtpCapabilities加载Mediasoup Client设备以实现网站视频流,但加载后的设备对象中_canProduceByKind为{audio: false, video: false},导致创建生产者传输时抛出UnsupportedError: cannot produce video错误。
控制台输出的完整设备对象
{ "_loaded": true, "_observer": { "_events": {}, "_eventsCount": 0, "_maxListeners": null }, "_handlerName": "Chrome111", "_extendedRtpCapabilities": { "codecs": [], "headerExtensions": [] }, "_recvRtpCapabilities": { "codecs": [], "headerExtensions": [] }, "_canProduceByKind": { "audio": false, "video": false }, "_sctpCapabilities": { "numStreams": { "OS": 1024, "MIS": 1024 } } }
传入load方法的rtpCapabilities
{ "rtpCapabilities": { "codecs": [ { "kind": "audio", "mimeType": "audio/opus", "clockRate": 48000, "channels": 2, "rtcpFeedback": [ { "type": "nack", "parameter": "" }, { "type": "transport-cc", "parameter": "" } ], "parameters": {}, "preferredPayloadType": 100 }, { "kind": "video", "mimeType": "video/VP8", "clockRate": 90000, "rtcpFeedback": [ { "type": "nack", "parameter": "" }, { "type": "nack", "parameter": "pli" }, { "type": "ccm", "parameter": "fir" }, { "type": "goog-remb", "parameter": "" }, { "type": "transport-cc", "parameter": "" } ], "parameters": { "x-google-start-bitrate": 1000 }, "preferredPayloadType": 101 }, { "kind": "video", "mimeType": "video/rtx", "preferredPayloadType": 102, "clockRate": 90000, "parameters": { "apt": 101 }, "rtcpFeedback": [] } ], "headerExtensions": [ {所有视频头……数量较多} ] } }
设备初始化代码
const createDevice = async () => { try{ console.log(mediasoupClient) console.log('RtpCapabilities', rtpCapabilities) deviceRef.current = new mediasoupClient.Device() await deviceRef.current.load({ routerRtpCapabilities: rtpCapabilities }) } catch(err){ console.log(err) if(err.name === 'UnsupportedError'){ console.warn('browser not supported') } } }
我已确认初始化前传入的rtpCapabilities无误,使用的Mediasoup Client版本为3.7.14,恳请帮忙解决该问题!
内容的提问来源于stack exchange,提问作者Andrew Marabante
相关产品推荐
相关产品推荐

