webrtc - 视频出现斑点,但它仍然是黑色的

2024-05-08

我使用 chrome 21 运行我的 webrtc 代码。

如果我在同一个 chrome 中打开两个选项卡,然后打开其中包含 webrtc 代码的页面。 一个选项卡用于发送视频流;一个选项卡用于接收视频流 效果很好。

但是,如果我使用两种隐身模式或两种不同的 Chrome 浏览器打开页面, 我可以得到sdp and 候选人信息正确。看来视频可以解码信息。

In remote video, I can see only enter image description here

此外,它似乎崩溃了。我尝试点击“关闭 chrome”但没用。

有人有类似的问题吗?


测试时WebRTC,我发现当我们调用时会出现这种情况peerConnection.addStream(…) in the wrong地方 - -

您必须记住,订购非常重要WebRTC!


更新时间:2014 年 7 月 17 日星期四下午 6:36(UTC)

以下情况会出现视频空白:

  1. 您正在使用 STUN,而您的 SSL 证书已过期或包含无效条目。
  2. 您正在使用 STUN,但它是公司防火墙、医院网络或专用网络阻止或隐藏外部 IP 地址或某些端口。
  3. 两个对等方都有无效的 sendrecv/sendonly/recvonly 对
  4. 提供者没有附加流,或者是 Firefox 在用户仅附加音频流(无论您使用什么)的情况下失败OfferToReceiveVideo:true
  5. 您正在检查HTMLMediaElement.HAVE_CURRENT_DATA or mediaElement.paused or mediaElement.currentTime而 Android 则存在与这些属性有关的已知问题。

解决方案?

  1. 使用 XirSys 中的 TURN 或安装你自己的 https://code.google.com/p/rfc5766-turn-server/.
  2. 确保您使用有效的 SSL 证书或改用 HTTP。
  3. 确保提供者附加了流;还要确保OfferToReceiveAudio/OfferToReceiveVideo根据附加的流使用。
  4. 确保您没有修改SDP;还尝试比较两个对等点之间的 SDP 并找出不匹配的地方。

如今,代码的排序是一种罕见的问题,因为我们都知道addStream应在创建报价或答复之前调用;即使是重新协商的会议。

尝试使用chrome://webrtc-internals和火狐的about:config查看这些浏览器内部发生了什么;并始终使用控制台日志onIceConnectionStateChange帮助您检查 ICE-Agent 是否存在的事件failed在 ICE 连接检查过程中或...

有时为提供者设置远程 sdp 太早会导致异常。总是使用onSdpError两者都是为了createOffer/createAnswer and setLocalDescription/setRemoteDescription e.g.

peer.setRemoteDescription(remoteSDP, onSdpSuccess, onSdpFailure);


一些演示资源:

  1. https://github.com/muaz-khan/WebRTC-实验 https://github.com/muaz-khan/WebRTC-Experiment / Demos https://www.webrtc-experiment.com/
  2. https://github.com/mozilla/webrtc-landing https://github.com/mozilla/webrtc-landing

and https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webrtc - 视频出现斑点,但它仍然是黑色的 的相关文章