[英]What's the best way to STREAM LIVE WEBCAM to SERVER and BACK TO THE WEB?
我需要一些帮助。
通过 web 从我的 WEBCAM 到服务器并返回给多个用户的最佳方式是什么?
本质上,我正在尝试创建一个可以支持许多用户的群组视频聊天应用程序。
我不希望它是点对点 webRTC。
I actually managed to make it work with getUserMedia() -> mediaRecorder -> ondataavailable -> pass blob chunks to node.js via SOCKET.IO -> socket.io sends back blob chunks to other connected users -> append those chunks to a sourceBuffer that's connected to a mediaSource这被设置为源 URL 上
它确实奏效了。 但它是如此缓慢、滞后和资源密集型。 由于这些块以每秒 20 次的速度通过,因此页面速度变慢了很多。 我认为您不应该这么快将那么多 blob 传递给 sourceBuffer,只是为了测试我尝试每 3 秒保存一次 mediaRecordings(所以它不是资源密集型)并将这些 webm blob 传递给 sourceBuffer 但对于一些原因只有第一个 webm 加载。 其他的不会被添加或开始播放。
它不能以这种方式用于生产应用程序。
这样做的“正确”方法是什么?
如何将视频 stream 从网络摄像头正确传递到 Node.js 服务器?
以及如何将 stream 这个直播 stream 从 Z3B2819DD4C244EDA52FAFZ2052 回到 web 的 Z3B2819DD4C244EDA2FAFZ2052 服务器上?
我有点失落。 请帮忙。
我使用 HLS 吗? 记录RTC?
我是通过 http 还是通过 Z3D7A7766E8CDEB1C1BAE2A47A1381Z 从 Node.js 获得 stream?
有些服务已经让您轻松做到这一点,例如 vonage video api tokbox,但那些似乎非常昂贵?
我想通过我自己控制的 Node.js 服务器运行视频流。
最好的方法是什么?
请帮忙。
谢谢
本质上,我正在尝试创建一个可以支持许多用户的群组视频聊天应用程序。
我不希望它是点对点 webRTC。
视频聊天需要低延迟,因此需要使用 WebRTC。 请记住,其中一个“对等方”实际上可以是服务器。
它确实奏效了。 但它是如此缓慢、滞后和资源密集型。
无论如何,视频编码/解码都是资源密集型的。 如果“慢”和“滞后”是指高延迟,那么是的,记录块、发送块、解码块,本质上都会有更高的延迟。 此外,您所描述的内容不会丢帧或动态调整编码,因此如果连接无法跟上,它只会缓冲直到可以。 这是与您想要的不同类型的权衡。
同样,对于视频聊天,实时性比质量和可靠性更重要。 如果这意味着丢弃帧,重新采样音频以快速赶上,以低比特率编码,甚至暂时完全丢弃流几秒钟,这就是需要发生的事情。 这就是整个 WebRTC 堆栈所做的。
由于这些块以每秒 20 次的速度通过,因此页面速度变慢了很多。 我认为您不应该这么快将那么多 blob 传递给 sourceBuffer。
不,这不太可能是您的问题。 接收端可能无法跟上所有这些流的解码速度。
我使用 HLS 吗?
不适合任何积极参与聊天的人......需要低延迟的人。 对于其他所有人,是的,您可以利用 HLS 和 DASH 为您提供一种更经济实惠的方式,在现有 CDN 上分发您的 stream。 请参阅此答案: https://stackoverflow.com/a/37475943/362536基本上,仔细检查您的要求并确定是否每个人都真正参与其中。 如果不是,请将它们转移到比 WebRTC 更便宜的流媒体方法。
记录RTC?
不,这与您的项目无关,坦率地说,我不知道为什么人们继续使用这个库做任何事情。 也许他们有一些我不知道的特定用例,但浏览器多年来一直内置MediaRecorder 。
有些服务已经让您轻松做到这一点,例如 vonage video api tokbox,但那些似乎非常昂贵?
这是一件昂贵的事情。 我想你会发现,在大多数情况下,使用已经准备好 go 的基础设施的现有服务会比自己做更便宜。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.