gpt4 book ai didi

node.js - 使用 socket.io 流式传输网络摄像头

转载 作者:搜寻专家 更新时间:2023-10-31 23:34:44 24 4
gpt4 key购买 nike

我一直在尝试实现一个能够处理以下场景的 Web 应用程序:

  • 同时将视频/音频从一个客户端流式传输到其他客户端(实际上是一组特定的客户端,没有广播)和服务器。数据源将是客户的网络摄像头。
  • 此流式数据必须实时显示在其他客户端的浏览器上保存在服务器端以用于“存档”目的。
  • 必须在node.js + socket.io环境下实现。

将其放在更具体的上下文中......场景是有一个人为他选择的用户创建了一个房间。在选定的用户加入房间后,创建者开始从他/她的内置设备(网络摄像头)流式传输视频/音频。所有客人都实时收到数据,而且数据被发送到存储数据的服务器,以便在流和房间关闭后恢复。

我正在考虑将 Socket.IO 与 WebRTC 混合使用。从理论上讲,这两者的结合似乎非常适合这项工作。Socket.IO 非常适合通过将一些套接字分配给房间来收集特定的用户集,以及 WebRTC 要求的信号处理。同时,WebRTC 非常适合聚集在同一房间的用户之间的 P2P 连接,它也非常容易访问我可能想要使用的网络摄像头和其他内置设备。

是的,理论上一切看起来都不错,但我真的需要查看一些实际代码,这样我才能真正尝试自己实现它。此外,我看到了一些问题:

  • 如何保存 P2P 连接发送的流?显然服务器无权访问它。我在想我可能会将服务器视为另一个“客人”,所以它只是与房间创建者的 P2P 连接的另一个端点。不过,不知怎的,它感觉很急躁。
  • 将服务器视为创建者和客户之间的中间人不是更好吗?与 P2P 相比,在某一点上可能会有一些可能微不足道的延迟,但大概对所有客户端来说都是一样的。 (我试过了,但我无法完成从网络摄像头到服务器的流式传输,但是这是另一个问题的主题,因为我在处理 MediaStream 时遇到问题)

我一直在寻找一些不错的解决方案,但没有成功。我看到有一个为 socket.io 制作的不错的 P2P 解决方案:http://socket.io/blog/socket-io-p2p/ .问题是——我认为它不能很好地处理数据流。这些示例只提到了简单的聊天应用程序,我需要比这更复杂的东西。

我真的很感谢一些具体的例子,文档,任何可以让我更接近它的实现的东西,因为我真的不知道如何处理它。

提前致谢:)

最佳答案

您的任务可以通过使用一种开源 WebRTC 服务器来解决。例如,kurento

你可以实现流的模式:

  • 一对一
  • 一对多
  • 多对多

WebRtc-server schema

客户端将通过 WebRTC 服务器相互连接。因此,在服务器端您可以录制流,或将其发送以进行转码。

webSocket 用于与服务器通信。

你可以找到一些examples根据你的任务

关于node.js - 使用 socket.io 流式传输网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40096763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com