【问题标题】:How can I use webrtc offline如何离线使用 webrtc
【发布时间】:2022-01-05 18:30:07
【问题描述】:

我正在开发一个 Vuejs 应用程序,其中包括在浏览器中显示多个 RTSP 流。 为了转换流并显示它们,我使用RTSPtoWebRTCWebRtcPlayer。 由于低延迟(这是一个机器人项目),我决定使用 WebRTC。 此方法运行良好,我可以查看最大延迟为 50 毫秒的所有流。 但是一旦我断开与互联网的连接,我就会收到一个错误:

Uncaught DOMException: Can't create RTCPeerConnections when the network is down

我不能指望这个机器人会一直有互联网连接,这不是本意。

我尝试了几种解决方案,例如从播放器和服务器中删除任何提及外部 iceServers 的内容。

      iceServers: [{
        urls: ["stun:stun.l.google.com:19302"]
      }]

尝试使用 coturn 运行我自己的 STUN/TURN 服务器并将 IP 地址作为 ICE 服务器提供,但没有成功 - 仍然没有互联网错误。

如果这很重要,我会在 Firefox 上运行该应用程序,我不久前发现了这篇文章:firefox bug report about this issue

我尝试了尝试将 about:config 中的 media.peerconnection.ice.loopback 设置为 true 的建议,但仍然不起作用。

非常感谢您的帮助!

编辑:

所以,在花了太多时间试图解决这个问题后,我发现在 Chrome 中它可以离线工作。所以我会坚持下去

【问题讨论】:

  • 您正在通过定制浏览器设置断开与互联网的连接?尝试从路由器中拔出电缆——假设有本地信令服务器,一切应该仍然有效。

标签: firefox webrtc rtsp stun


【解决方案1】:

在 Firefox 代码中抛出错误:https://searchfox.org/mozilla-central/source/dom/media/PeerConnection.jsm#473

如果我正确阅读了该代码,则环回接口的解决方法将不再有效。代码中的 if 条件只是询问网络代码是否有网络连接。

所以你要么

  • 尝试 Phillips 的建议,让一个网络接口相信它仍然具有连接性。也许一个带有硬编码 IP 地址的假接口,但没有默认路由就足够了。
  • 或者您说服 Mozilla 开发人员相信在离线场景中使用 PeerConnections 的合理用例可以在 Firefox 中删除该检查 - 尽管我担心它可能会在代码的更下方遇到另一个错误。或者您可以尝试自己提交补丁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多