没有 ssrc 标签的 Chrome WebRTC 中的单流 audio/video
Single stream audio/video in Chrome WebRTC without ssrc tags
当您从 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');
如果不可能,您是否知道这种限制是否已在某处正式说明(请link),或者只是在某些时候变得不可行?似乎它以前工作过(大约 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 之前删除它们。
当您从 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');
如果不可能,您是否知道这种限制是否已在某处正式说明(请link),或者只是在某些时候变得不可行?似乎它以前工作过(大约 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 之前删除它们。