我正试图将视频流从一台笔记本电脑发送到另一台笔记本计算机,并通过服务器进行路由。让我们称他们为笔记本电脑A,向笔记本电脑B发送视频流。
在笔记本电脑A上,我对如何收集视频流没有特别的要求,但我想会有某种NodeJS服务器在运行,它会打开一个到服务器的网络套接字来发回视频流。
在笔记本电脑B上,我想在浏览器内的html5视频标签中渲染视频。
有人对如何在技术上做到这一点有什么建议吗?
我并不真正理解的差距是:*如何将流从笔记本电脑a发送到服务器(也可能运行NodeJS)*如何提供可插入笔记本电脑B 视频标签的视频流
谢谢!
试图用javscript/html5实现这一点实际上是选择了错误的技术。你应该看看客户端的Flash(和RTMP),并使用任何免费的(开源的)Flash Media Server替代品。(您必须拥有Flash或Silverlight等插件才能访问网络摄像头数据-您的网络浏览器/javascript无法访问网络摄像头。)
nodertmp是一个用node.JS编写的rtmp协议服务器,这可能符合您的兴趣。我自己还没有测试节点rtmp,但它可以作为你的起点。如果它不适合您,那么还有多个其他RTMP服务器项目。(我用了很多Red5,它是用java编写的。)
在电脑A上,你需要一个Flash应用程序来获取你的网络摄像头数据并将其发送到RTMP服务器。已经有开源项目在这样做了,例如:https://github.com/AF83/webcam-streamingRed5中也包含此类闪存应用程序的示例代码,可能还包含在其他RTMP服务器项目中。
您不能使用HTML视频标记在计算机B上显示RTMP流。如果是RTMP,则必须使用Flash播放器。可以将RTMP数据转换为其他数据,从而可以使用HTML视频标记进行显示。将Red5、rtmpdump、ffmpeg等开源软件和一些http黑客结合起来,使其在http上运行是可能的。然而,我真的会考虑,仅仅因为不运行Flash应用程序,这样做是否值得。。。
在电脑B上,我会使用jwplayer(或任何一个jwplayer克隆)来播放RTMP流。