gpt4 book ai didi

node.js - 将实时网络摄像头流式传输到服务器并返回到网络的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-04 17:26:35 26 4
gpt4 key购买 nike

我需要一些帮助。
在网络上设置从我的 WEBCAM 到服务器再返回到多个用户的实时流媒体的最佳方法是什么?
本质上,我正在尝试创建一个可以支持许多用户的群组视频聊天应用程序。
我不希望它成为点对点 webRTC。
我实际上设法让它与 getUserMedia() -> mediaRecorder -> ondataavailable -> 通过 SOCKET.IO 将 blob 块传递给 node.js -> socket.io 将 blob 块发送回其他连接的用户 -> 将这些块附加到连接到 mediaSource 的 sourceBuffer 被设置为
它确实有效!但它是如此缓慢、滞后和资源密集型。由于这些块每秒传递 20 个,这大大减慢了页面速度。我认为您不应该如此快速地将那么多 blob 传递给 sourceBuffer。只是为了测试,我尝试每 3 秒保存一次 mediaRecordings(因此它不是资源密集型的)并将这些 webm blob 传递给 sourceBuffer 但由于某种原因只加载第一个 webm,而其他的没有被添加或开始播放。
它不能以这种方式用于生产应用程序。
什么是“正确”的方式来做到这一点?
如何正确地将视频流从网络摄像头传递到 Node.js 服务器?
以及如何将此实时流从 Node.js 服务器流式传输回 Web,以便我们可以进行群组视频聊天?
我有点失落。请帮忙。
我使用 HLS 吗?记录RTC?
我是通过 http 还是通过 socket.io 从 Node.js 流式传输?
有些服务已经可以让您轻松做到这一点,例如 vonage video api tokbox,但这些服务似乎非常昂贵?
我想通过我自己控制的 Node.js 服务器运行视频流。
做到这一点的最佳方法是什么?
请帮忙。
谢谢

最佳答案

Essentially I'm trying to create a group video chat application that can support many users.


I don't want it to be peer to peer webRTC.


视频聊天需要低延迟,因此需要使用 WebRTC。请记住,其中一个“对等方”实际上可以是服务器。

And it actually worked! BUT it's so slow and laggy and resource intensive.


无论您如何操作,视频编码/解码都是资源密集型的。如果“慢”和“滞后”是指高延迟,那么是的,记录块、发送块、解码块,就其本质而言将具有更高的延迟。此外,您所描述的不会丢帧或动态调整编码,因此如果连接无法跟上,它只会缓冲直到可以。这是一种与您想要的不同的权衡。
同样,对于视频聊天,实时性比质量和可靠性更重要。如果这意味着丢弃帧、以愚蠢的速度重新采样音频以追赶、以低比特率编码,甚至暂时完全丢弃流几秒钟,那么这就是需要发生的事情。这就是整个 WebRTC 堆栈所做的。

As these chunks get passed like 20 per second and it's slowing the page a lot. I don't think you're supposed to pass that many blobs to the sourceBuffer so quickly.


不,这不太可能是您的问题。接收端可能只是跟不上解码所有这些流。

Do I use HLS?


不适合任何积极参与聊天的人......需要低延迟的人。对于其他所有人,是的,您可以利用 HLS 和 DASH 为您提供一种更实惠的方式来通过现有 CDN 分发您的流。看到这个答案: https://stackoverflow.com/a/37475943/362536基本上,仔细检查您的要求并确定是否每个人都真正参与了。如果不是,请将它们转移到比 WebRTC 更便宜的流媒体方法。

RecordRTC?


不,这与您的项目无关,坦率地说,我不知道人们为什么一直使用这个库做任何事情。也许他们有一些我不知道的特定用例,但是浏览器已经内置了 MediaRecorder多年。

There are services that already let you do that easily like vonage video api tokbox but those seem to be very expensive?


这是一件昂贵的事情。我认为您会发现,在大多数情况下,使用已经准备好基础设施的现有服务比自己动手更便宜。

关于node.js - 将实时网络摄像头流式传输到服务器并返回到网络的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62862218/

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