google-chrome - 强制为WebRTC PeerConnections使用TCP

标签 google-chrome webrtc sdp stun turn

是否可以通过WebRTC强制进行TCP隧道(TLS)连接?

我们正在为我们的业务开发WebRTC应用程序,但由于内部网络而导致传入UDP流出现一些重大问题。我们已经在使用TURN服务器,并且正在获得许多ICE候选对象(甚至是中继UDP候选对象)。

就像我上面提到的,问题在于,我们传入的UDP流量在这里不能可靠地工作(卡顿,非常差的图像质量,非常低的fps)。足以给浏览器留下印象,WebRTC可以将其用于PeerConnection(s),但实际结果在UDP上非常糟糕。

如果我阻止所有传出和传入的UDP流,则可以(在Wireshark中)看到WebRTC通过使用turn服务器回退到TCP流量。

通过TCP连接,我们获得了很好的结果(高帧速率和非常好的图像质量)。

我已经尝试过几种强制TCP的方法:

  • 我删除了m = video行中的UDP部分

    m =视频TLS/RTP/SAVPF 10011611796
  • 我已从候选列表
  • 中排除了每个UDP候选对象

    在每种情况下,我什至都无法建立连接。

    我可以做些什么来强制在WebRTC中使用TCP,还是真的完全依赖这里的浏览器?

    最佳答案

    使用TURN/TCP服务器配置对等连接,并将iceTransports约束设置为中继。参见http://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
    请注意,质量通常比UDP差。

    浏览器到浏览器的连接不支持ICE-TCP。仅当您有SFU/MCU/Gateway设备时。

    关于google-chrome - 强制为WebRTC PeerConnections使用TCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35062682/

    相关文章:

    objective-c - 开放托克 : OTCameraCaptureResolutionHigh equivalent variable in swift

    swift - 如何在使用 Callkit 时播放声音,例如铃声?

    css - 如何在 Chrome 中调整文本字段的大小?

    javascript - 错误 : Invalid value for argument 4. 属性 'method':意外的属性

    google-chrome - Chrome 问题 SVG 转换

    webrtc - "iceConnectionState"是 "failed"没有任何错误

    android - 如何修复 Android/Webrtc/PeerConnection/createOffer 中的 "m=video 9 UDP/TLS/RTP/SAVPF 0"issus

    javascript - d3js svg 在 chrome 中不可见

    android - WebRTC Android 视频聊天应用程序,无法使一台设备响铃另一台设备

    android - Chrome Android 未使用 SDP 提供的所有编解码器选项