使用PHP或Node.js的WebRTC信令服务器

5
我正在尝试构建一个简单的视频流Web应用程序,其中一个用户(聊天室所有者)从他的网络摄像头广播视频,其他用户(聊天室成员)能够实时观看。
我在Google上进行了大量研究,发现我需要以下内容:
- 获取adapter.js文件以实现兼容性(不知道在哪里获取) - 从网络摄像头获取视频流 - 将其发送到服务器 - 让服务器将其发送给特定用户 - 客户端接收该视频流并在

1
我知道,你有这段代码的工作示例吗? - user7885198
“从网络摄像头获取视频流”需要Flash或其他插件,除了客户端语言。 “客户端接收该视频流并在<video>标签中显示”不可能。需要Flash、Silverlight或其他ActiveX插件。 - developerwjk
就像我说的那样,我已经成功完成了这个任务,但是我现在卡在了将视频传输到服务器上。 - user7885198
3
@developerwjk,你根本不知道你在说什么。 - Brad
1
WebRTC似乎是最方便的方法,我不关心技术,我只需要它能够工作。 - user7885198
显示剩余4条评论
3个回答

4

我将在下面逐条回答你的问题:

  1. 你可以从这里获取adapter.js文件。

  2. 要从网络摄像头获取视频流,请使用getUserMedia API,请查看演示

  3. 如果想要向观众串流视频,则需要使用PeerConnection

    • WebRTC没有定义特定的信令,您可以使用任何服务器(node/php)在点对点之间交换发布者和观众之间的offer/answer/candidates。请查看官方复杂的演示并获取源代码

    • 如果您想要向多个观众串流视频,则需要一个媒体服务器,请查看JanusJitsi的演示。

你可以从这里找到更多资源。


4
我已经看过这些链接,它们并没有帮助我太多,这就是我为什么首先要问一个问题的原因。 - user7885198

4

看起来你正在寻求帮助并且有大量问题。

关于本地或远程:它们之间没有区别,无论是只在计算机上工作还是在服务器上。通常你会在本地计算机上测试,然后把它放到网上。你通常不需要改变你的代码(除了像URL这样的设置)让它在服务器上工作。

你说你不知道应该在服务器端写什么代码。好吧,它只是用于信令,因此任何两个浏览器都应该能够通信。通常使用WebSockets完成,使用不到10行的Node.js代码编写;有很多小例子,像这里。你说你的主要服务器语言是PHP;这是具有挑战性的,因为PHP不能使用WebSockets,除非有命令行访问权限。如果你有常规的共享主机PHP访问权限,可以使用我在这里提供的ServerSideEvents示例。

你想知道客户端将如何接收流。好吧,浏览器会负责流。你只需要处理握手。所以当你运行两个浏览器的代码时(就像在我的例子中一样),对于更多的客户端来说,代码完全相同,你可以扩展它以便有一个发送者和多个观看者。


0
我知道这已经是4年后的事了,但如果有人看到这个,我稍微扩展了Niels出色的PHP示例,这让它更加可靠。谢谢Niels!
请查看我的文章:(其中包含指向我的GitHub存储库的链接)

https://peacocksoftware.com/blog/webrtc-video-chat-only-php-and-javascript-no-nodejs-or-websockets

它仍然不使用NodeJS或WebSockets,但它确实使用数据库来跟踪消息。该代码技术上是为Drupal编写的,但旨在作为在任何PHP环境中构建视频聊天的指南。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接