【发布时间】:2017-02-15 09:44:35
【问题描述】:
有没有办法预加载部分视频(在此之前显示加载栏),然后开始播放?我们不希望网站上出现任何缓冲问题。
我尝试搜索类似的主题,没有找到。
提前致谢。
【问题讨论】:
有没有办法预加载部分视频(在此之前显示加载栏),然后开始播放?我们不希望网站上出现任何缓冲问题。
我尝试搜索类似的主题,没有找到。
提前致谢。
【问题讨论】:
在开始之前尝试将足够的内容下载到缓冲区中来确保视频没有缓冲是非常困难的,因为即使是中等长度的视频,网络条件也会发生相当大的变化。
保证它的唯一方法是下载几乎所有的视频,即使网络变得非常慢,你可能仍然会在最后得到缓冲。
尝试获得您正在寻找的高质量体验的常用方法是使用自适应比特率流。
要使用它,您可以在服务器上创建多个不同比特率版本的视频,并按时间将每个版本分成多个块,例如10 秒块。
客户端然后逐块请求视频块,正常进行一些缓冲,并根据网络条件选择从哪个比特率请求下一个块。
因此,如果网络良好,用户将获得高分辨率的视频体验,如果网络不好,则分辨率会下降。只要有良好的比特率版本组合,就可以避免缓冲,除非网络非常糟糕。
您可以看到 YouTube、Netflix 等使用的这种技术 - 在 YouTube 中,如果您查看可以使用它的设置并强制它选择一种特定的比特率大小并查看效果(如果您选择高的除非您的互联网连接非常好,否则您可能会看到您描述的缓冲问题)。
该方法还允许快速启动视频,方法是从较低带宽开始,然后在缓冲更多视频后升级到较高带宽。
您还可以通过右键单击视频并选择“书呆子的统计数据”来查看 YouTube 上比特率步骤和缓冲区的漂亮图形视图 - 它提供了如下视图:
如果您确实想在开始播放之前调整缓冲区的大小,那么您可能需要修改播放器本身或创建自己的播放器。
在网络播放器领域,HTML5 播放器现在通常使用媒体源扩展 (MSE),如果您愿意,它可以让您控制缓冲。 MSE 本质上是一种将缓冲区与 HTML5 视频 src 相关联的机制,而不是通常的文件或 URL。然后,您可以编写自己的 JavaScript 来根据需要填充缓冲区。这里有一个很好的介绍(跳到 MSE 部分):
【讨论】: