课堂环境中的渐进式视频下载 - 如何确定所需带宽

课堂环境中的渐进式视频下载 - 如何确定所需带宽

背景:我们需要为大约 15 名用户的教室提供大量视频的电子学习课程。此视频将通过 HTML5 视频以 MP4 格式提供,因此可以逐步下载。据我所知,您无法流式传输到 HTML5 视频。

这 15 位用户将会在同一个房间,共享一个互联网连接。

视频将包含大量短片(30 秒),每个片段约 9 MB。这些文件将通过 Amazon Cloudfront (CDN) 交付

使用渐进式下载时,每个“客户端”是否都能尽可能快地下载?

这个理论正确吗?还是错误呢?

  • 用户 A 是第一个下载视频的人,并且以接近全速开始下载
  • 然后用户 B 和 C 也进入了同一阶段,他们开始下载,但由于带宽不足,下载速度非常慢
  • 用户DP被坑了!

我该如何建议我的客户他需要什么样的互联网连接才能保证顺利播放?

有什么想法/建议吗?

答案1

这比你想象的要简单,一个 9MB 的 30 秒剪辑是 300KBps,对吧,你有 15 个这样的剪辑 - 因此你需要能够传输 4.5MBps,也就是大约 45Mbps。从服务器到你的教室的单个 100Mbps 链接应该没问题。只要网络服务器不缺内存,它就可以轻松读取文件一次并缓存它们,从而减少任何随机读取的要求。

Web 服务器随机读取的最坏情况是所有 15 个用户同时开始播放不同的非缓存视频,因此 15 x 9MB,135MB。鉴于这些文件本质上是连续的,任何像样的磁盘控制器都可以在不到一两秒的时间内从最便宜的单个磁盘开始流式传输所有 15 个视频。

基本上运行 100Mbps 链接并确保你的网络服务器有足够的内存,然后放松 :)

答案2

简短回答:2.4 Mbit(9 MB * 8 位/字节 / 30 秒)* 15(客户端)= 36Mbit,可始终实现流畅播放。如果不是每个人都会同时下载,或者如果您不介意加载时间较长,那么您可能只需要更少的带宽。他们可以通过本地缓存(例如 Squid)来确保只下载这些文件一次,这样效果会好得多。

长话短说就是“这取决于很多因素”:)

此外,如果客户端都在类似的机器上并下载相同的内容,则它们的使用率将相等。因此学生 DP 不会遇到麻烦,它们的速度都会同样变慢(环境中的所有其他条件相同)。

答案3

我个人会在教室中使用缓存“服务器”(例如 Squid),因此如果 15 个用户的视频始终相同,则只需下载一次。

例如参见 serverfault 上的这个问题:

配置 Squid 缓存媒体流

这可以大大降低您的带宽需求,如果您事先知道,您甚至可以在非工作时间缓存它们,这样您就可以使用当前可用的带宽,而不需要额外的昂贵线路。

根据视频许可证和客户所在位置,您可能需要面对一些法律问题。

相关内容