4

我有一个 HTML5<video>元素,其来源是.m3u8HLS 流

我有一个 M3U8,它具有三种不同的再现:640x360960x5401280x720

在台式机上,我有一个用于播放视频的 Flash Player,因此 HTML5 后备仅适用于移动设备(iOS 和 Android) - 我在 iPad 上进行所有测试,一旦它工作,我将在 Android 上试用并希望一切正常。

我的目标是,在任何时候,找出视频元素正在播放的版本。再现会随着用户带宽的变化而变化。

我尝试使用该.videoHeight属性,但无论下载的版本如何,它总是返回 480 - 这特别奇怪,因为 480 甚至不是一个选项。

有谁知道我怎样才能弄清楚正在下载的演绎版?

4

1 回答 1

1

清理一些从未得到答案的老问题:

不幸的是,这是不可能的。大多数浏览器中的 HTMl5 视频规范和 HTML5 视频实现旨在抽象出播放视频所涉及的所有底层魔法。你给它一个来源,它就会播放。其他所有内容都完全隐藏,您无权访问。无法访问元数据通道,无法访问音频通道,无法访问比特率和分辨率信息,...

充其量我开发了一个解决方案来猜测正在播放的分辨率。每 10 秒通过 AJAX 加载一个 1 MB 的文件。我测量了这个下载的速度来猜测他们当前的带宽。我知道 QuickTime 只有在您拥有双倍所需带宽时才会播放。因此,如果960x540再现需要 1400 kbit/s,那么除非您有 2800 kbit/s 的带宽,否则它不会播放。

这不是很好(每分钟浪费 6 MB 的带宽),但总比没有好。

于 2015-08-13T02:29:20.227 回答