Tag: webrtc

WebRTC远程video显示为黑色

在开发WebRTCvideo聊天应用程序时,我遇到了接收远程videostream的问题。 videostreamblob被接收,但video只是黑色。 我已经通过这些答案,并尝试几乎所有我能得到它的工作https://stackoverflow.com/a/17424224/923109 远程VideoStream不与WebRTC的工作 …… Globalvars.socket.on('call', function (signal) { if(!Globalvars.pc){ Methods.startCall(false, signal); } if(signal.sdp){ temp = new RTCSessionDescription({"sdp" : decodeURIComponent(signal.sdp), "type" : signal.type}); Globalvars.pc.setRemoteDescription(temp); for(i = 0; i < Globalvars.iceCandidateArray.length; i++){ Globalvars.pc.addIceCandidate(new RTCIceCandidate({ sdpMLineIndex: decodeURIComponent(signal.sdpMLineIndex), candidate: decodeURIComponent(signal.candidate) })); } Globalvars.iceCandidateArray = []; } else{ if(Globalvars.pc.remoteDescription){ Globalvars.pc.addIceCandidate(new RTCIceCandidate({ sdpMLineIndex: decodeURIComponent(signal.sdpMLineIndex), candidate: decodeURIComponent(signal.candidate) })); console.log("remot"); } else{ […]

在初始拒绝后使用getUserMedia()重新获取权限

在被拒绝一次之后,我们如何使用getUserMedia()来请求摄像头/麦克风访问? 我正在使用getUserMedia访问用户的相机并将数据传输到canvas。 这一切工作正常。 在testing中,我曾遭到否认。 在Chrome和Firefox的这一点上,任何随后的getUserMedia()请求都会默认为拒绝状态。 我们显然不希望在被拒绝之后在每个页面加载请求摄像头/麦克风的权限,从而使我们的用户感到懊恼。 这已经足够地理定位api烦人了。 但是,必须有一种方法来再次请求它。 仅仅因为用户遭到拒绝,并不意味着他们想要一直拒绝摄像头访问。 我一直在阅读规范和search一下,但我没有find任何明确的问题。 编辑:进一步的研究,似乎在Chrome浏览器中击中拒绝将当前网站添加到阻止列表。 这可以通过chrome:// settings / content手动访问。 滚动到媒体。 pipe理例外情况,删除阻止的网站。 链接到Chrome://设置/内容不起作用(如果我们想添加一个有用的链接让人们重新启用权限)。 整个用于处理getUserMedia的权限的用户体验很糟糕。 =(

哪个版本的Microsoft Internet Explorer支持WebRTC?

Chrome和Firefox都支持WebRTC 。 Internet Explorer是否支持它? 从哪个版本开始? 如果没有,将来有没有计划支持它,如果有的话? 使用像webrtc4all这样的项目来补充支持是一个实际的解决scheme?

是否有可能使用WebRTC将video从服务器传输到客户端?

在WebRTC中,我总是看到点对点的实现以及如何从一个客户端向另一个客户端传输videostream。 服务器到客户端怎么样? WebRTC可以将video文件从服务器端传输到客户端吗? (我正在考虑使用WebRTC Native C ++ API来创build我自己的服务器应用程序,以连接到Chrome或Firefox浏览器客户端应用程序上的当前实现。) 好的,如果可能的话,它会比许多现有的videostream服务更快吗?

什么是ICE候选人,他们之间的对等连接如何select?

我刚写了一个简单的聊天应用程序,但我并不真正了解ICE候选人的背景。 当对方创build一个连接时,他们得到ICE候选人,并交换他们,并最终将他们设置为peerconnection。 所以我的问题是,ICE候选人从哪里来,他们是如何使用的,他们都真正使用? 我注意到我的同事在他的机器上执行这个应用程序的候选人较less,可能是候选人数量不同的原因是什么?

WebRTC无法从USBinput设备获取video(readyState会结束)

我正尝试使用WebRTC在屏幕上显示videoinput作为实时馈送。 我不是想做任何对等的通讯或类似的东西,只是显示一个video源。 代码我有我的笔记本电脑集成摄像头工作正常,但是当我连接外部videoinput设备(在这种情况下,通过S-Video连接到USBinput使用StarTech转换器的旧摄像机 – 型号SVID2USB2NS),我什么也没得到。 我已经在Chrome和FireFox中试过了。 这两个浏览器findvideo设备,并提供我的集成摄像头或USB设备(在这种情况下列为“USB 2820”)的select,所以他们知道在这种情况下的设备。 在Chrome中,当我尝试连接时,getUserMedia调用的“成功”callback被调用,如果我.getVideoTracks()findMediaStreamTrack ,并且callback的时刻, MediaStreamTrack返回enabled = true和readyState = live 。 然而,没有videoinput(只是一个黑色的video面板,Chrome浏览器标签中的红色“录制”图标没有出现)。 如果我稍后再检查MediaStreamTrack,我发现readyState now =“ ended ”(虽然启用仍然成立)。 在FireFox中,find了设备,但是使用getUserMedia连接到它的任何尝试都会触发错误callback,并带有HARDWARE_UNAVAILABLE错误。 我的getUserMedia调用很简单: navigator.getUserMedia({ audio: false, video: true }, _webRTCsuccessCallback, _webRTCerrorCallback); 我的成功callback是(包括一些testing代码立即检查MediaStreamTrack和一秒钟后): function _webRTCsuccessCallback(stream) { window.stream = stream; // stream available to console if (window.URL) { _video.src = window.URL.createObjectURL(stream); } else { _video.src = […]

WebRTC如何工作?

我对浏览器中的对等连接感兴趣。 由于这似乎是可能的WebRTC,我想知道它是如何工作的exaclty。 我已经阅读了一些解释并看到了关于它的图表,现在很明显,连接build立在服务器上。 服务器似乎在愿意互相连接的客户端之间交换一些数据,以便他们可以启动一个独立于服务器的直接连接。 但那是我不明白的。 到目前为止,我认为创build连接的唯一方法是在计算机A上监听端口,并从计算机B连接到该端口。但在WebRTC中似乎并不是这种情况。 我认为没有一个客户开始听港口。 不知何故,他们可以创build一个连接,而不需要监听端口和接受连接。 客户端A和客户端B都不作为服务器。 但是,如何? 通过WebRTC服务器交换什么数据,客户端可以使用哪些数据互相连接? 感谢您的解释:) 编辑 我发现这篇文章。 这与WebRTC无关,但我认为它回答了我的问题的一部分。 我不确定,强硬。 如果有人能向我解释,并给我一些额外的链接,它仍然会很酷。

WebRTC和WebSockets在低级数据通信方面有什么区别?

我想了解WebRTC和WebSockets之间的区别,以便我可以更好地了解哪个scheme需要什么。 我很好奇双方的主要想法(主要基于networking,但可能是一个专用的服务器应用程序)相互交谈。 假设: 显然,对于专门的networking,WebRTC因为它本身支持ICE协议/方法而获胜。 问题: 关于浏览器中两个已知方之间的直接通信,如果我不是依靠发送多媒体数据,而且我只对发送整型数据感兴趣,WebRTC是否给我比web数据encryption更好的优势? 关于专用服务器与基于浏览器的客户端通话,哪个平台给我一个优势? 我需要编写一个WebRTC服务器(这是可能的浏览器?),或者我需要编写一个WebSocket服务器(快速谷歌search让我觉得这是可能的)。

如何访问iOS11主屏幕上的Web应用程序的相机?

概要 我们无法使用WebRTC或文件input从iOS11(公开发布)主屏幕Web应用程序访问相机,详情如下。 我们的用户怎么能继续访问相机? 我们通过https提供网页应用程序页面。 解决scheme,十一月 我们失望了苹果希望解决这个问题,并向前迈进。 修改我们的networking应用程序,删除iOS“添加到主屏幕”function,并要求受影响的用户删除任何以前的主屏幕图标。 11月21日更新 iOS 11.2 beta 4和iOS 11.1.2不能修复。 9月21日的变通办法 似乎我们可以问networking应用程序的现有客户 不升级到iOS11 – 祝你好运:) 在iOS相机拍摄照片,然后在networking应用程序中select它们 等待下一个testing版 重新安装为Safari浏览器页面(在我们删除了ATHS逻辑之后) 切换到Android 文件input 我们目前的产品代码使用的文件input在iOS 10及更高版本上已经运行良好。 在iOS11上它作为一个Safari选项卡,但不是从主屏幕应用程序。 在后一种情况下,相机被打开,只显示一个黑色的屏幕,因此它是无法使用的。 <meta name="apple-mobile-web-app-capable" content="yes"> … <input type="file" accept="image/*"> 的WebRTC iOS11上的Safari 11提供了WebRTC媒体捕获 ,这非常棒。 我们可以使用navigator.mediaDevices.getUserMedia获取相机图像,以在桌面和移动设备上的正常网页上进行canvas。 当我们将页面添加到iPad或iPhone主屏幕时, navigator.mediaDevices变得undefined且不可用。 <meta name="apple-mobile-web-app-capable" content="yes"> … // for some reason safari on mac can debug ios […]

WebRTC和Websockets。 有没有区别

我假设WebRTC是一个解码/编码audio和video的API,虽然服务器和客户端之间的通信是通过networking套接字或其他networking协议完成的? 我有点困惑。 WebRTC是否有自己的通信协议?