【问题标题】:Stream video from one client to another client through a server通过服务器将视频从一个客户端流式传输到另一个客户端
【发布时间】:2012-04-15 03:29:51
【问题描述】:

我正在尝试将视频流从一台笔记本电脑发送到另一台笔记本电脑,并通过服务器进行路由。我们称他们为笔记本电脑 A,向笔记本电脑 B 发送视频流。

在笔记本电脑 A 上,我对如何收集视频流没有特别要求,但我认为会运行某种 NodeJS 服务器,它会打开一个到服务器的 Web 套接字以发回视频流。

在笔记本电脑 B 上,我想在浏览器中以 html5 视频标签呈现视频。

有人对如何在技术上做到这一点有任何建议吗?

我不太了解的差距是: * 如何将流从笔记本电脑 A 发送到服务器(也可以运行 NodeJS) * 如何提供可插入笔记本电脑视频标签的视频流 B

谢谢!

【问题讨论】:

标签: javascript html sockets node.js websocket


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 我对想法非常开放,我希望笔记本电脑 B 能够呈现为视频标签。听起来您建议在服务器端设置 RTMP 服务器......但我对其余部分的工作方式知之甚少。你能澄清一下吗?谢谢!
  • 添加了更多关于此的信息。
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2014-01-19
  • 2020-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多