webrtc - 视频获得blob,但它仍然是黑色的

Shi*_*hou 10 html5 html5-video webrtc

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

如果我在同一个chrome中打开两个选项卡,然后打开包含webrtc代码的页面.一个选项卡用于发送视频流; 一个选项卡用于接收视频流它工作正常.

但是,如果我用两个隐身模式或两个不同的Chrome浏览器打开页面,我可以正确获取sdp候选信息.看来视频可以解码信息.

在远程视频中,我只能看到 在此输入图像描述

此外,它似乎崩溃.我试图点击"关闭铬"但没用.

有没有人有类似的问题?

Mua*_*han 12

在测试WebRTC时,我发现当我们peerConnection.addStream(…)错误的地方打电话时会出现这种情况----

你必须记住,在WebRTC中订购非常重要!


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

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

  1. 您的SSL证书已过期或条目无效时,您正在使用STUN.
  2. 您正在使用STUN,但它是公司防火墙,或医院网络或专用网络,它阻止或隐藏外部IP地址或某些端口.
  3. 两个对等体都具有无效的sendrecv/sendonly/recvonly对
  4. Offerer没有附加流,或者Firefox是在用户仅附加音频流而你正在使用的情况下失败的情况 OfferToReceiveVideo:true
  5. 你检查HTMLMediaElement.HAVE_CURRENT_DATAmediaElement.pausedmediaElement.currentTime虽然它是Android的拥有关于这些特性已知问题.

解决方案?

  1. 使用XirSys的TURN或安装自己的.
  2. 确保您使用的是有效的SSL证书或使用HTTP.
  3. 确保提供者附加了流; 还要确保根据附加的流使用OfferToReceiveAudio/ OfferToReceiveVideo.
  4. 确保您没有修改SDP; 还尝试比较两个对等体之间的SDP和找出不匹配.

如今,对代码的排序是一种罕见的问题,因为我们都知道addStream应该在创建要约或回答之前调用它; 即使是重新谈判的会议.

尝试使用chrome://webrtc-internalsFirefox和Firefox about:config来查看这些浏览器中发生的情况; 并始终使用控制台日志进行onIceConnectionStateChange事件,以帮助您检查failedICE连接检查过程中的ICE- Agent 或...

有时为提议者设置remote-sdp太早,会导致异常.始终使用onSdpError既为createOffer/ createAnswersetLocalDescription/ setRemoteDescription例如

peer.setRemoteDescription(remoteSDP, onSdpSuccess, onSdpFailure);


一些演示资源:

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

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