我一直在苦苦思索这个问题。请查看下面的故事和Codepen:
我正在尝试使用一些 HTML5 的视频 currentTime JavaScript 特效。特别是这一个将 currentTime 绑定到由 d3.js 创建的圆形的角度和鼠标位置上。
我的问题是在 Chrome 中性能很差。由于某种原因,该特效非常卡顿,实际上无法响应。如果在 Firefox 中运行它,性能会好得多(虽然仍然有点卡顿)。
现在,我认为问题出在视频质量上。它太差了吗?为了进行比较,请使用 "apple.mp4" 替换 src 中的 "sky4.mp4"。这是我从 Apple 的 iPhone6 网站(https://www.apple.com/iphone-6/)下载的视频,它的质量非常高,并且在两个浏览器中都能更加流畅地运行。
我比较了视频质量,它们的 FPS 相同(~30fps)。Apple 的视频具有更高的分辨率,以及更高的比特率(10mbps),而原始视频则为(6mpbs)。但我认为如果我只是更改 currentTime,那么 FPS 应该是唯一重要的因素,不是吗?
但事实并非如此,因为替换 src 文件并查看 "space.mp4"。这是一个非常低质量的视频(15fps,非常低的分辨率和 130 kbps)。在 Chrome 和 Firefox 中都可以很流畅地运行。
这里到底发生了什么?为什么我的中等质量视频无法与此特效配合使用,而低质量和高质量视频可以?谁能为我解答一下? http://codepen.io/jayventura/pen/EaweaJ
(code to make stackoverflow happy)