通过服务器将视频从一个客户端流式传输到另一个客户端

问题描述:

我试图将一台笔记本电脑的视频流发送到另一台笔记本电脑,并通过服务器进行路由。让我们称他们为笔记本电脑A发送一个视频流到笔记本电脑B.通过服务器将视频从一个客户端流式传输到另一个客户端

在笔记本电脑A,我没有特别的要求,我如何收集视频流,但我想有一些类型的NodeJS服务器运行,打开网络套接字到服务器发回视频流。

在笔记本电脑B上,我想在html5视频标签中将视频渲染到浏览器中。

有没有人有任何建议如何可以在技术上做到这一点?

我真的不明白的差距: *如何从笔记本电脑一个流发送给服务器(也可以运行的NodeJS) *如何提供可插入视频的视频流在笔记本电脑上标记B

谢谢!

+0

WebRTC:https://webrtc.org/ – Brad 2016-06-18 23:14:25

试图用javscript/html5来做到这一点真的是选择错误的技术。您应该在客户端查看Flash(和RTMP),并使用任何免费(开源)Flash Media Server替代方法。 (您必须拥有Flash或Silverlight等插件才能访问摄像头数据 - 您的Web浏览器/ javascript无法访问网络摄像头。)

node-rtmp是一种用Node.JS编写的RTMP协议服务器,可能会对你感兴趣。我自己没有测试过node-rtmp,但它可以成为你的起点。如果它不适合你,那里还有其他多个RTMP服务器项目。 (我已经使用了很多Red5,这是用java编写的)。

在计算机A上,您需要一个Flash应用程序,将您的摄像头数据发送到RTMP服务器。有一些开源项目已经这样做了,例如: https://github.com/AF83/webcam-streaming Red5中也包含此类Flash应用程序的示例代码,也可能包含在其他RTMP服务器项目中。

您无法使用HTML视频标签在计算机B上显示RTMP流。如果它是RTMP,则必须使用Flash播放器。可以将RTMP数据转换为其他内容,以便使用HTML视频标签进行显示。它可能(可能)可能与Red5,rtmpdump,ffmpeg等开放源代码软件以及一些http黑客入侵以使其通过http相结合。然而,我真的会考虑是否值得工作和麻烦,这样做只是为了不运行Flash应用程序...

在计算机B上,我会使用jwplayer(或任何jwplayer克隆)来播放RTMP流。

+0

我对想法非常开放,我只想将笔记本电脑B渲染为视频标签。这听起来像你建议在服务器端建立一个RTMP服务器......但我不知道其余的应该如何工作。你能澄清一下吗?谢谢! – Steve 2012-03-31 22:14:32

+0

在此添加了更多信息。 – 2012-03-31 22:33:03