google-chrome - 从 Firefox 到 Chrome 没有 WebRTC 视频信号,但所有其他组合均有效

标签 google-chrome firefox webrtc

我有一个使用 adapter.js 实现 WebRTC 的 Web 应用程序,并且大多数情况下都有效。 Firefox 到 Firefox 以及 Chrome 到 Chrome 工作正常,但是:

当 Chrome 和 Firefox 连接时,来自 Firefox 端的视频不会显示在 Chrome 端。 音频确实有效!,所以 webrtc channel 很好。

  • 计算机位于同一网络
  • (我确实有 STUN/TURN 功能,但我认为这无关紧要)
  • 哪一方发起调用并不重要
  • Chrome 总是看不到 Firefox,而 Firefox 总是能看到 Chrome
  • 没有错误,没有警告,所有预期的回调都会触发,握手似乎已完成
  • Alice 在onicecandidate“结束”时向 Bob 发送了她的ice候选人。鲍勃也做了同样的事情,但时机可能比我意识到的更重要。
  • 两个视频元素均已创建,并带有 blob src(使用 srcObject),并且 onloadedmetadata 在两个浏览器上都会触发
  • 每台计算机上都会发生(在 5 台计算机上尝试了约 20 种组合)

极少数情况下,其他事情会失败,例如 ICE 协商(即使它始终是同一网络),并且 createOffersetRemoteDescription 有时会失败。

我能找到的所有此类问题都是 2-3 年前的问题,但在那之后 Firefox 和 Chrome 似乎成了 RTC 的好伙伴。我的视频出了什么问题?

相关,但不是解决方案:

最佳答案

这可能是关于 API 中同步或不同步发生的事情的假设的问题。该 API 是高度异步的,同步或不同步发生的情况在浏览器之间(或同一浏览器的不同版本之间)有所不同。您可能需要仔细将您的代码与使用adapter.js的其他示例进行比较。

如果没有代码或相关片段,很难确切地说出了什么问题,但是需要检查的重要事项是:webrtc(对于 Firefox,包括底部的连接日志)、chrome webrtc 内部页面和内部日志记录。还可以添加您自己的记录,记录发生和未发生的回调/ promise 。我建议在 Firefox 中设置环境变量 NSPR_LOG_MODULES=signaling:4,mtransport:4 和 NSPR_LOG_FILE=whatever。您还可以(尤其是使用这些日志或一些示例代码)在 irc.mozilla.org 上的 #media 中 ping Firefox 开发人员。

关于google-chrome - 从 Firefox 到 Chrome 没有 WebRTC 视频信号,但所有其他组合均有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532343/

相关文章:

JavaScript - 在选项卡关闭时发送 AJAX 调用(删除请求)

html - Chrome 中不显示输入复选框

java - 从 JAR : "Firefox can' t find the server at www. %u.com 启动链接。”

javascript - 可以使用 webrtc 在 webapp 中流式传输桌面

javascript - Webrtc 与 Goinstant 无法跨不同网络工作

javascript - 为什么我的扩展无法将 CSS 插入此选项卡?

python - 在 Linux 上使用 selenium chromedriver 和 python 与 chromium

javascript - 在 Firefox 中添加动态样式表时可以触发 jQuery load 事件吗?

html - 内联元素的子元素在 Chrome 和 Firefox 中的 react 不同

javascript - RTCPeerConnection.ontrack 事件未触发