拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何离线使用webrtc

如何离线使用webrtc

白鹭 - 2022-02-14 2151 0 0

我正在开发一个 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 的建议,但仍然不起作用。

非常感谢您的帮助!

uj5u.com热心网友回复:

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

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

所以你要么

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

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *