webrtc - 实时广播摄像机的最佳方式
问题描述
我正在尝试找到广播 camara 并将流发送到 200 个连接的最佳方式。
如果我使用web-rtc,我会受到 CPU 能力的限制。我尝试使用服务器作为网关,但我可以执行的最大连接数是 60。120 和 2 个服务器。
我不能使用 Web 套接字发送流,因为 TCP 协议会产生延迟。
最后的解决方案:使用 RTMP 协议,但有 5s-10s 的延迟。
我的问题:是否有一种解决方案可以将摄像机实时传输到多个客户端(200/300)?
解决方案
仅使用 webrtc 是行不通的,因为我认为相机设备需要巨大的带宽。最好的方法是使用 SFU。这会将视频发送到服务器,然后将其广播给每个对等方。如果只使用视频,它通常能够处理 200 个连接。
我已经使用mediasoup实现了这样的服务器。它还允许您平衡多个 cpu 和多个服务器的负载。
这是一个使用该库的简单项目。还有其他解决方案,例如 Janus 网关或 kurento 服务器。虽然我没有使用过它们。
第二个解决方案
我找到了这个 github 存储库,它允许对等视频转发,即使对于大量观众也是如此。基本上将流转发给也将转发其接收到的流的其他对等方。我认为会有更多的延迟,因为视频可以通过许多对等点进行中继。
推荐阅读
- python - 在任何键盘输入某个按键之前,如何禁用所有键盘和鼠标(除了一个)?
- linux - 有没有办法在 Jenkins 中针对 RDS (Oracle) 运行 SQL 查询而不使用 SQL Plus Script Runner Plugin
- python - 加入函数没有从列表中返回字符串值
- bash - 当包含多行时缩进“读取”输入
- javascript - 如何在 NodeJS 中要求一个带参数和不带参数的模块?
- google-cloud-platform - GCP 数据流与云函数
- rest - 尽管在 SDN Floodlight 控制器上启用了防火墙规则,但对所有主机的 Ping 仍然有效
- docker - 如何修复 Docker Ubuntu 18.04 映像中的“哈希和不匹配”
- c++ - 我怎样才能拥有一个以二维数组作为参数的函数,而该数组有一个我想要更改的参数/维度?
- python - 如何从检索到的 JSON 数据中删除双引号