当您从 SDP 中去除 a=ssrc 行时,是否可以通过 Chrome 的 WebRTC 进行单流音频(或视频)?
我试过过滤掉 a=ssrc 行(使用下面的代码),但单流音频不起作用。我还尝试了单流视频和重命名,而不是删除具有相同结果的行。我修改了提议和回答 SDP。有趣的是,当您尝试发送带有音频和视频的 SDP 时,这种过滤会起作用 - 音频(仅)在这种情况下会起作用。但是,在我们的应用程序中的这种情况下,我遇到了重新协商的问题,因此这可能不是一个有效的解决方案。
您可以在此 repo 中看到单流音频/视频的最小示例:https : //github.com/Tev-work/webrtc-audio-demo。
如果可能,您能否提供带有工作音频的最少代码示例?最好使用上面的 repo,modifySdp函数(在public/client.js 中)应该做什么?
目前它使用以下代码修改 sdp:
sdp = sdp.replace(/a=ssrc/g, 'a=xssrc');
sdp = sdp.replace(/a=msid-semantic/g, 'a=xmsid-semantic');
sdp = sdp.replace(/a=mid/g, 'a=xmid');
sdp = sdp.replace(/a=group:BUNDLE/g, 'a=xgroup:BUNDLE');
如果不可能,您是否知道此类限制是否已在某处正式声明(请链接),或者只是在某个时候变得不可行?似乎它以前工作过(大约 M29,请参阅此处的评论https://bugs.chromium.org/p/webrtc/issues/detail?id=1941 - 没有提到这不应该工作)。
动机:我们有时会通过 SIP PBX 发送 SDP,这有时会过滤掉 SSRC 线路。在这种情况下支持多个流显然是不可能的(也许有一些服务器端黑客流?),但至少支持这种情况下的仅音频对我们有用。
这应该仍然是可能的,即使有一些副作用,如(遗留)getStats 无法识别流,请参阅(此错误)[ https://bugs.chromium.org/p/webrtc/issues/detail?id= 3342] 。
您尝试的是在调用 setLocalDescription 之前删除 a=ssrc 行。这可能行不通。如果您想模拟该场景,请在使用 SDP 调用 setRemoteDescription 之前尝试删除它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句