我正在构建一个通过webRTC使用计算机网络摄像头的Web应用程序.该站点仅在一台特定的计算机上运行,该计算机将每天关闭并重新启动一次.
我的问题是:如何在网站加载后让机器自动确认网络摄像头对话框?
该系统是OSX Leopard和最新的Chrome.谢谢,我很开心.
WebRTC流量使用DTLS加密 - 好的.但是通过TURN服务器转发的流量呢?
我正在寻找一种可靠的资源来确认流量是真正的端到端加密(因为"端到端"有时可能意味着几件事).所以我的意思是
反而,
我无法找到明确的答案.
因此,我制作了一个 WebRTC 屏幕共享应用程序,作为 Chrome 远程桌面和其他常见远程桌面/游戏流服务的自托管替代方案。
我的困境不是navigator.mediaDevices undefinded。每当我通过某个file:///方案启动应用程序时,它都能完美运行;与Mozilla 文档中提到的相同https://。但问题是我并不想举办它,因为它有一些重大安全问题(小号)。那么我如何在192.168.XXX.XXXX没有它给出错误的情况下托管它呢?(我想将它托管在我的本地网络上,以便我可以在其他移动设备上对其进行测试。)
请帮忙!在隔离的LAN上,有没有什么方法可以简单地使用DHCP服务器分配的IP地址建立webRTC连接?我在学校里有一个孩子的教室,里面有针对学生无线上网的政策.我也有自己的网络应用程序,我可以在室内无线网络上托管,我想使用它,这样我就可以在我自己的浏览器中获得实时学生回复.一旦他们进入我的浏览器,我就可以将它们与localStorage一起缓存,并打开一个评估可能性的世界.
我知道我可以通过Node.js和Socket.io实现这一点 - 但我真的希望避免使用我有限的技能设置那种服务器.我是一名学习编程的科学老师,所以请随意"保持简单".谢谢!!
Alex,你是对的,如果所有的计算机都在同一个本地网络上,我可以避免使用STUN服务器.虽然我不得不咬紧牙关并在笔记本电脑上安装Node.js,但实际上并不复杂.然后我尝试了一大堆不起作用的"工作示例",直到我找到了这个和他的GitHub文件.
在Node中运行服务器脚本后,我在同一台计算机上的两个浏览器窗口之间有一个DataChannel连接,但在不同的计算机之间没有.我编辑.html文件指向我的本地服务器IP地址而不是' DataChannel'然后我可以连接多台计算机!然后是真正的测试 - 我可以在没有互联网连接的情况下使用它吗?我找到了使用Google的STUN服务器指定的行并将其更改为
var config = {"iceServers":[{"url":"stun:stun.l.google.com:19302"}]};
只是
var config = {"iceServers":[]};
我正在尝试使用适用于Android的WebRTC本机代码包(即不使用WebView)在Android应用内部实现3路视频聊天.我使用node.js编写了一个信令服务器,并使用客户端应用程序内的Gottox socket.io java客户端库连接到服务器,交换SDP数据包并建立双向视频聊天连接.
但是现在我遇到的问题不仅仅是三方通话.WebRTC本机代码包附带的AppRTCDemo应用程序仅演示双向呼叫(如果第三方尝试加入房间,则返回"房间已满"消息).
根据这个答案(与Android没有特别关系),我应该通过创建多个PeerConnections来实现,因此每个聊天参与者将连接到其他2个参与者.
但是,当我创建多个PeerConnectionClient(一个包装PeerConection的Java类,它在libjingle_peerconnection_so.so中的本机端实现)时,会从库内部抛出异常,因为它们都试图与访问相机:
E/VideoCapturerAndroid(21170): startCapture failed
E/VideoCapturerAndroid(21170): java.lang.RuntimeException: Fail to connect to camera service
E/VideoCapturerAndroid(21170): at android.hardware.Camera.native_setup(Native Method)
E/VideoCapturerAndroid(21170): at android.hardware.Camera.<init>(Camera.java:548)
E/VideoCapturerAndroid(21170): at android.hardware.Camera.open(Camera.java:389)
E/VideoCapturerAndroid(21170): at org.webrtc.VideoCapturerAndroid.startCaptureOnCameraThread(VideoCapturerAndroid.java:528)
E/VideoCapturerAndroid(21170): at org.webrtc.VideoCapturerAndroid.access$11(VideoCapturerAndroid.java:520)
E/VideoCapturerAndroid(21170): at org.webrtc.VideoCapturerAndroid$6.run(VideoCapturerAndroid.java:514)
E/VideoCapturerAndroid(21170): at android.os.Handler.handleCallback(Handler.java:733)
E/VideoCapturerAndroid(21170): at android.os.Handler.dispatchMessage(Handler.java:95)
E/VideoCapturerAndroid(21170): at android.os.Looper.loop(Looper.java:136)
E/VideoCapturerAndroid(21170): at org.webrtc.VideoCapturerAndroid$CameraThread.run(VideoCapturerAndroid.java:484)
Run Code Online (Sandbox Code Playgroud)
在尝试建立连接之前初始化本地客户端时会发生这种情况,因此它与node.js,socket.io或任何信令服务器内容无关.
如何让多个PeerConnections共享相机,以便我可以将同一视频发送给多个同行?
我的一个想法是实现某种单独的相机类来取代可以在多个连接之间共享的VideoCapturerAndroid,但我甚至不确定它是否会起作用,我想知道是否有办法做3-在我开始在库内进行黑客攻击之前使用API进行调用.
是否可能,如果可能,怎么样?
更新:
我尝试在多个PeerConnectionClients之间共享一个VideoCapturerAndroid对象,仅为第一个连接创建它,并将其传递给后续的初始化函数,但这导致了"Capturer只能被捕获一次!" 从VideoCapturer对象为第二个对等连接创建第二个VideoTrack时出现异常:
E/AndroidRuntime(18956): FATAL EXCEPTION: Thread-1397
E/AndroidRuntime(18956): java.lang.RuntimeException: Capturer can only be taken once!
E/AndroidRuntime(18956): at org.webrtc.VideoCapturer.takeNativeVideoCapturer(VideoCapturer.java:52) …Run Code Online (Sandbox Code Playgroud) 我正在进行webRTC视频通话.我已成功实施datachannel.现在我想将视频流添加到同一个对等连接.
我已经读过应该在回答和提供之前添加流.有没有办法在回答或提供后添加流?
如果我在提供或回答之前添加了流,我怎么能停止流式传输并在需要时再次启动它?
维护这么多流可能有任何问题吗?
我在同一个网络上有两台计算机.其中一个用RTP协议发送电影(H264).是否可以创建一个简单的JavaScript应用程序来在第二台计算机上接收此流并显示在视频标签中?
到目前为止,我对WebRTC的印象是它被设计用于浏览器之间(都使用WebRTC api),但我只想在接收端使用它.
我想知道哪个框架或库最适合使用WebRTC.这里有一个很小且不完整的库/ SDK列表.我忘了的任何lib,请随时告诉我:
图书馆:
实施教程/资源:
有人对所有框架进行了比较吗?这将有助于那些不熟悉WebRTC的人.
将WebRTC作为一项新技术进行研究后,我找不到比您的经验更完整的来源.我决定发布这个问题,以便制作一个可以比较可用来源的触发器.
非常感谢.
给定一个公共IP地址(对等体A)和许多其他公共IP地址列表(IPv4和IPv6地址的混合),最简单的方法是将对等体A匹配n最近对等体的IP地址而不使用对等体手动ping对方进行延迟基准测试?
我认为这可以使用BGP和一堆复杂的查询(也许涉及OSPF),但我希望可能有一个解决方案或库可以让它像下面的理论函数调用一样简单.
// `peer` is a single IP address. `peer_list` is a list of IP addresses
// get the 5 nearest peers (ordered) to `peer` from `peer_list`
nearest_peers = get_nearest_ips(peer, peer_list, 5);
Run Code Online (Sandbox Code Playgroud)
我应该只使用MaxMind的GeoIP数据库+ Haversine/Vincenty的本地实例,还是通过库(在需要时使用适当的缓存)来实现这一点是否可行?
看起来这种代码可能存在于开源的任播路由实现中,尽管我还没能找到适合这种用例的任何东西.
解决方案或建议的库不必在node.js上工作 - 任何语言都可以.
webrtc ×10
javascript ×5
android ×1
dtls ×1
frameworks ×1
html ×1
java ×1
networking ×1
node.js ×1
p2p ×1
rtp ×1
security ×1
videochat ×1
webcam ×1