我希望在一个项目中使用WebRTC,在该项目中,我需要将一台计算机(带有wifi热点和USB摄像头的机器人)的视频通过本地网络实时流传输到另一台计算机(该机器人的控制器)。在这种情况下,两台计算机都是单板计算机,视频流是单向的。我还希望两台计算机在两个方向上相互传递数据。我在研究中发现了WebRTC,它似乎具有我正在寻找的所有功能。
从使用演示NodeJS程序进行的初始测试来看,WebRTC似乎几乎正是我想要的。我一直试图克服的一个大问题是,默认情况下,似乎要求在两个客户端之间使用在线信令服务器。我研究发现,可以在本地网络中用第三台计算机创建信令服务器,但是这种设置不适用于我的项目。
我研究了其他解决方案,并遇到了实现WebRTC的OpenVidu,但允许将信令服务器内置到其中一台客户端计算机中(至少这是我在另一本{{3}中阅读的内容) })。我尚未测试该工具是否可以解决我的问题,但是当前我被该项目所使用的不支持ARM处理器的项目使用的docker映像所阻止,该图像由单板计算机使用,因此需要进行特殊安装。 / p>
在经历可能会或可能不会正常工作的过程之前,我想问一下是否有另一种更简单的解决方案来运行WebRTC,而无需访问互联网并且不需要第三台计算机作为信令服务器,或者是否对其他工具有任何建议比WebRTC对我的应用程序更好。我对这项技术非常陌生,肯定会错过一个简单或现有的解决方案。在此问题上的任何帮助将不胜感激。
对于那些好奇的人,正在使用的单板计算机是NVidia Jetson Nanos。
答案 0 :(得分:0)
找到了解决方案。使用Google Codelabs example,此修复程序仅涉及删除配置中的默认ice服务器。从本质上讲,这意味着改变
const config = {
iceServers: [
{urls: ["stun:stun.l.google.com:19302"]}
]
}
到
const config = {
iceServers: []
}
答案 1 :(得分:0)
您可以在局域网上运行本地Turnserver。这是非常容易和直接的。 检查此enter link description here
安装后即可运行
turnserver -p 19302
现在您的配置文件:
const config = {
iceServers: [
{urls: ["stun:<<YOUR HOST IP>>:19302"]}
]
}