Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome WebRTC中的单流音频/视频,无ssrc标签_Javascript_Google Chrome_Webrtc_Sdp - Fatal编程技术网

Javascript Chrome WebRTC中的单流音频/视频,无ssrc标签

Javascript Chrome WebRTC中的单流音频/视频,无ssrc标签,javascript,google-chrome,webrtc,sdp,Javascript,Google Chrome,Webrtc,Sdp,当您从SDP中剥离a=ssrc线路时,是否可以通过Chrome的WebRTC进行单流音频(或视频)传输 我尝试过过滤掉a=ssrc行(代码如下),但单流音频不起作用。我还尝试了单流视频和重命名,而不是删除行,结果相同。我修改报价和应答SDP。有趣的是,当您尝试发送带有音频和视频的SDP时,这种过滤会起作用。在这种情况下,音频和视频(仅)都会起作用。然而,我在我们的应用程序中遇到了在这种情况下重新协商的问题,所以这可能不是一个有效的解决方案 您可以在此repo中看到单流音频/视频的最小示例: 如果

当您从SDP中剥离a=ssrc线路时,是否可以通过Chrome的WebRTC进行单流音频(或视频)传输

我尝试过过滤掉a=ssrc行(代码如下),但单流音频不起作用。我还尝试了单流视频和重命名,而不是删除行,结果相同。我修改报价和应答SDP。有趣的是,当您尝试发送带有音频和视频的SDP时,这种过滤会起作用。在这种情况下,音频和视频(仅)都会起作用。然而,我在我们的应用程序中遇到了在这种情况下重新协商的问题,所以这可能不是一个有效的解决方案

您可以在此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,见这里的评论-没有提到这是不应该工作的)


动机:我们有时通过SIP PBX发送SDP,有时会过滤掉SSRC线路。在这种情况下支持多个流显然是毫无疑问的(可能有一些服务器端黑客流?),但至少在这种情况下支持音频对我们来说是有用的。

这应该仍然是可能的,即使有一些副作用,如(遗留)getStats无法识别流,请参阅(此错误)[


您尝试的是在调用setLocalDescription之前删除a=ssrc行。这可能行不通。如果您想模拟这种情况,请尝试在使用SDP调用setRemoteDescription之前删除它们。

这确实解决了我的问题-我可能必须告诉Chrome使用一些ssrc标记数据包(不是从本地描述中删除),而是从远程描述中删除a=msid行,这样Chrome可以自动检测(?)标记的数据包。我猜?我没有时间去摆弄Wireshark…但是你的回答帮助很大,所以谢谢!/还不能升级/