HTML5视频 - 最大播放速率是多少?

25

您可以为 HTML5 视频元素设置播放速率:

var player = document.getElementById("video");
player.playbackRate = 100;

w3规范没有定义极限。在Chrome和Firefox中,<video>元素的最大播放速率是多少?如果播放速率不取决于浏览器,则是什么决定了它?

研究:

MDN HTML媒体元素表示,某些浏览器会停止播放0.25x-4x之外的音频。它没有说视频元素是否会继续播放视频。

YouTube的播放器支持0.25x-2x之间的速度。这是一个Flash播放器,而不是HTML5视频元素,我对此不感兴趣。

就个人而言,在我的电脑上创建了一个测试页面,其中包含一个<video>元素和一个本地视频文件。我可以将播放速率设置为任何值(例如100),但视频似乎不会播放得比约5倍更快。我实际上无法检查播放速率,因为它只返回我设置的值“100”。

4个回答

37

更新于 2021年7月8日以反映浏览器行为的最新更改

Firefox:

根据源代码,Firefox 应将播放速率限制在0.0625 - 16.0范围内。在我的测试中,它不再遵循此规定,不会限制播放速率。但是,如果播放速率低于0.5或高于4.0,它仍然会将音频静音。

来源 - Firefox 源代码位于dom/html/HTMLMediaElement.cpp

Chrome:

Chrome 将播放速率限制在0.0625 - 16.0的范围内。在我的测试中,如果播放速率低于0.5或高于4.0,它也会将音频静音。

来源 - Chromium 源代码位于third_party/blink/renderer/core/html/media/html_media_element.h


如果能提供源代码的链接,那么这个人将是完美的候选者。 - coding_idiot
现在Firefox支持播放速率高达16.0x,如源代码中所指定的:https://dxr.mozilla.org/mozilla-central/source/dom/html/HTMLMediaElement.cpp#167 - slava
我观察到Firefox现在可以播放高达8倍的音频,尽管您提供的链接中的源代码仍将变量THRESHOLD_HIGH_PLAYBACKRATE_AUDIO设置为4。 - Sander

1

从技术上讲,应该没有限制。

但把一个30秒的视频播放在不到一秒钟内,这有何意义呢?


1
你有“从技术上讲不应该有限制”的来源吗?你能在浏览器中重现这个吗? - Don P
2
我在回答时有源代码,但忘记在这里包含它...让我再研究一下,然后我会编辑它。 - Mischa

0
大多数浏览器在播放速率范围为0.5和4之外的音频时会停止播放,而视频则会静默播放。因此,建议大多数应用程序将范围限制在0.5到4之间。这可能是您的视频播放速率未能超过5(可能是4)的原因。
来自Mozilla开发者网络。
编辑:
可以在此处找到一个播放速率演示应用程序。
它显示了高达10倍的播放速率(但没有声音)。
更新
播放速率属性代表视频的固有或正常播放速率的倍数,默认设置为1。如果将该属性设置为2,则会使播放速度加倍,而0.5则会以一半的速度播放。如果将播放速率设置为负值,在Windows Internet Explorer 9中,它会将其舍入为零,从而暂停播放。在Internet Explorer 10中,播放速率的负值会导致视频倒播。W3C规范没有推荐上限,但Internet Explorer将播放速率限制在最高8倍速。
此外,这也取决于您处理器的性能。更高的处理器速度将提供更高的播放限制可能性。
来源:https://msdn.microsoft.com/library/hh924823(v=vs.85).aspx

1
是的,我知道MDN文档,我在原始问题中已经包含了它们。感谢您提供的链接,指出Internet Explorer将播放速率限制在8,但我的问题特别询问Chrome和Firefox的最大播放速率(请参见标签和悬赏说明)。 - Don P

0

最小速度:0.0625x

最大速度:16x

来源:在Google Chrome上进行试错

document.getElementsByTagName("video")[0].playbackRate = 2.5;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接