HTML5视频:检测带宽

时间:2012-07-04 15:26:52

标签: javascript html5 video-streaming html5-video

我有一个1080p视频,我在我的网页上以HTML5 <video>标签显示。

是否有一种检测带宽的简单(ish)javascript方法,因此如果用户的连接速度太慢而无法流式传输,我可以将视频切换为质量较低的版本?与YouTube的“自动”视频尺寸选择器背后的逻辑类似。

5 个答案:

答案 0 :(得分:4)

在谷歌浏览器中,至少视频元素上有以下属性:

webkitVideoDecodedByteCount: 0
webkitAudioDecodedByteCount: 0

这些应足以确定客户端解码视频的速度。在播放视频时,您将跟踪这些字节的增量,从而为客户端处理视频提供字节/秒。

答案 1 :(得分:3)

要获得更新的答案:MPEG-DASH正在替换HLS。 HLS主要用于iOS领域。大多数桌面浏览器不打算支持它,而DASH是他们正在迈向的标准。 (但是,有很多播放器旨在让您使用HLS与hls.js等HTML5视频播放器)。 DASH播放器包括Bitmovin,Google Shaka等。许多人目前都编码HLS和DASH。 HLS还支持碎片mp4。请注意,您需要在服务器端正确编码视频。其他资源:http://www.streamingmedia.com/Articles/Articles/Editorial/Featured-Articles/The-State-of-MPEG-DASH-2016-110099.aspx

答案 2 :(得分:0)

我讨厌那个功能!这通常是错误的,如果我想等待2个小时来加载我的视频,那就等我了!如果没有向用户发送大型虚拟文件并测量到达他的时间,就没有可靠的方法来准确地测量它。

您应该依靠用户输入(并正确记住它!与YouTube不同!)。

简而言之,不以YouTube为例

答案 3 :(得分:0)

有些付费服务可能会让您了解对方所使用的带宽,例如netspeed

数据准确性对您来说可能已足够,但我没有机会亲自测试它。

答案 4 :(得分:0)

到目前为止,您必须在MPEG-DASH和HLS中提供您的内容,以便为所有平台提供广泛的支持。 HLS现在支持分段MP4,您可以使用one single output format,它可以在每个设备上播放。此外,您需要50% less storage,并且由于fMP4比目前用于HLS的MPEG-TS更具存储效率,因此您可以节省更多存储和带宽。

Bitmovin提供了example如何创建HLS fMP4内容以及如何播放它。