LAN 上的低延迟 html5 视频
low-latency html5 video on a LAN
我正在寻找有关如何使用标签以相对较低的延迟(~2 秒)流式传输实时视频流的建议。我已经看到了一些与此帖子类似的其他问题,例如 and this 但都没有真正充分回答我的问题。第一个假设内容消费者不在现场。第二个似乎也做出了这个假设。
我正在寻找真正实现此目标的技术、库或任何建议。我已经尝试使用 nginx-RTMP 从视频设备接收流,然后使用 HLS 将其发送到浏览器。然而,我用这个实现的最低延迟是 ~4s。我还没有开始使用 DASH,我发现 this 论文描述了在与我类似的设置中使用它实现低延迟,但在开始尝试之前我想听听一些意见。
我知道 gstreamer 之类的解决方案确实存在,并且我使用 GPAC 工具测量了大约 200 毫秒的延迟,但让用户下载东西并不是我可以追求的真正选择(LAN 设置站点不会有互联网、手机或其他方式)。
编辑 1:
我根本没有大规模工作。最多将有 200 个用户,所有这些用户都将通过 wifi 连接到 LAN。我需要低延迟的原因是该项目的目标是为用户提供他们所处事件的更好视图。实际观点很差
您无法通过任何分段分发方法(HLS、DASH 或类似方法)实现低延迟。这些协议的本质是数据被分成相对较大的块。 HLS 的 4 秒非常低,而且对于这么小的块,你会有相当多的开销......浪费带宽而且 HLS 和 DASH 并不是真正适合的。
The first one is working under the assumption that the content consumers will not be on site.
我的回答 () 并没有假设消费者不会访问您的网站……根本不是这样。我的建议是,当不需要低延迟时,您可以利用 YouTube 并嵌入他们的查看器,从而节省大量资金。
如果所有 的观众需要 低延迟视频来完成这项工作,您将不得不在服务器端。如果您告诉我们您使用的是哪种秤,也许我们可以提出更具体的建议。既然你没有,让我们关注客户端的可能性。
WebRTC 是最好的选择之一。整个 WebRTC 堆栈中的所有内容都是在考虑低延迟的情况下构建的。使用 WebRTC,您可以在正常操作中获得亚秒级延迟。请注意,目前支持 WebRTC 的流媒体服务器的选择并不多。
您还可以使用媒体源扩展和 Web 套接字。这为您提供了相当多的控制权,并允许以稍高的延迟成本将数据非常快速地流式传输到客户端。这样做比实现您自己的支持媒体流的服务器端 WebRTC 要容易得多。
我强烈建议您也再次阅读我对另一个问题的回答。这里有很多考虑因素……确保这种低延迟实际上值得降低质量和所涉及的财务成本。这种情况很少见,特别是对于 10 万或更多的用户。
我正在寻找有关如何使用标签以相对较低的延迟(~2 秒)流式传输实时视频流的建议。我已经看到了一些与此帖子类似的其他问题,例如
我正在寻找真正实现此目标的技术、库或任何建议。我已经尝试使用 nginx-RTMP 从视频设备接收流,然后使用 HLS 将其发送到浏览器。然而,我用这个实现的最低延迟是 ~4s。我还没有开始使用 DASH,我发现 this 论文描述了在与我类似的设置中使用它实现低延迟,但在开始尝试之前我想听听一些意见。
我知道 gstreamer 之类的解决方案确实存在,并且我使用 GPAC 工具测量了大约 200 毫秒的延迟,但让用户下载东西并不是我可以追求的真正选择(LAN 设置站点不会有互联网、手机或其他方式)。
编辑 1:
我根本没有大规模工作。最多将有 200 个用户,所有这些用户都将通过 wifi 连接到 LAN。我需要低延迟的原因是该项目的目标是为用户提供他们所处事件的更好视图。实际观点很差
您无法通过任何分段分发方法(HLS、DASH 或类似方法)实现低延迟。这些协议的本质是数据被分成相对较大的块。 HLS 的 4 秒非常低,而且对于这么小的块,你会有相当多的开销......浪费带宽而且 HLS 和 DASH 并不是真正适合的。
The first one is working under the assumption that the content consumers will not be on site.
我的回答 (
如果所有 的观众需要 低延迟视频来完成这项工作,您将不得不在服务器端。如果您告诉我们您使用的是哪种秤,也许我们可以提出更具体的建议。既然你没有,让我们关注客户端的可能性。
WebRTC 是最好的选择之一。整个 WebRTC 堆栈中的所有内容都是在考虑低延迟的情况下构建的。使用 WebRTC,您可以在正常操作中获得亚秒级延迟。请注意,目前支持 WebRTC 的流媒体服务器的选择并不多。
您还可以使用媒体源扩展和 Web 套接字。这为您提供了相当多的控制权,并允许以稍高的延迟成本将数据非常快速地流式传输到客户端。这样做比实现您自己的支持媒体流的服务器端 WebRTC 要容易得多。
我强烈建议您也再次阅读我对另一个问题的回答。这里有很多考虑因素……确保这种低延迟实际上值得降低质量和所涉及的财务成本。这种情况很少见,特别是对于 10 万或更多的用户。