Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何预加载视频的一部分,以便没有缓冲?_Video_Preload_Buffering - Fatal编程技术网

Video 如何预加载视频的一部分,以便没有缓冲?

Video 如何预加载视频的一部分,以便没有缓冲?,video,preload,buffering,Video,Preload,Buffering,有没有办法预先加载部分视频(在此之前显示加载条),然后开始播放?我们不希望在站点上出现任何缓冲问题 我试着搜索类似的主题,但没有找到 提前感谢。很难通过在开始之前尝试下载足够的视频到缓冲区来确保视频没有缓冲,因为即使是中等长度的视频,网络条件也会发生很大的变化 唯一能保证这一点的方法是下载几乎所有的视频,即使网络速度非常慢,最终也可能会得到缓冲 想要获得您想要的高质量体验,通常的方法是使用自适应比特率压缩 要使用此功能,请在服务器上创建视频的多个不同比特率版本,并按时间将每个版本分成块,例如10

有没有办法预先加载部分视频(在此之前显示加载条),然后开始播放?我们不希望在站点上出现任何缓冲问题

我试着搜索类似的主题,但没有找到


提前感谢。

很难通过在开始之前尝试下载足够的视频到缓冲区来确保视频没有缓冲,因为即使是中等长度的视频,网络条件也会发生很大的变化

唯一能保证这一点的方法是下载几乎所有的视频,即使网络速度非常慢,最终也可能会得到缓冲

想要获得您想要的高质量体验,通常的方法是使用自适应比特率压缩

要使用此功能,请在服务器上创建视频的多个不同比特率版本,并按时间将每个版本分成块,例如10秒的块

然后,客户机逐块请求视频块,正常情况下进行一些缓冲,并根据网络条件选择请求下一块的比特率

因此,如果网络良好,用户将获得高分辨率视频体验,如果网络不好,分辨率将下降。只要存在良好的比特率版本组合,就可以避免缓冲,除非网络非常糟糕

你可以在YouTube上看到YouTube、Netflix等使用的这种技术——如果你查看设置,你可以使用它,强迫它选择一个特定的比特率大小,并看到效果(如果你选择一个高的,你可能会看到你描述的缓冲问题,除非你的互联网连接非常好)

该方法还允许快速启动视频,方法是先从较低的带宽开始,然后在缓冲更多视频后再升级到较高的带宽

通过右键单击视频并选择“书呆子的统计数据”,您还可以在YouTube上看到比特率步骤和缓冲区的良好图形视图,它提供如下视图:

如果您真的想在开始播放之前调整缓冲区的大小,那么您可能需要修改播放器本身或创建自己的播放器

在web播放器领域,HTML5播放器现在通常使用媒体源扩展(MSE),这将允许您在需要时控制缓冲。MSE本质上是一种将缓冲区与HTML5视频src相关联的机制,而不是通常的文件或URL。然后,您可以编写自己的JavaScript,以根据需要填充缓冲区。这里有一个很好的介绍(跳到MSE部分):


你知道这些家伙是怎么做到的吗?他们已经预装了视频的一部分作为加载屏幕,因此没有缓冲问题加载屏幕只是一个图像-视频在你进一步进入网站时开始。您可以通过查看浏览器工具上的“网络”选项卡以及何时请求mp4文件来查看这一点。如果你有一个足够坏的连接,它仍然会暂停(我能够看到这一点)。他们在Vimeo上托管它,并使用Vimeo CDN,这通常会给他们带来非常好的用户体验。我注意到他们在显示加载屏幕时加载了一个巨大的文件,这是什么?看起来像是base64格式的mp3文件。您上面提到的文件db.js在我查看它时实际上没有下载(MAC上的Chrome),因此它可能依赖于操作系统或浏览器。循环播放一段视频通常只是要求播放机跳到某个特定时间。我认为您可能有两个新问题,因此我建议您分别提问以获得正确答案。作为一个快速的初始提示,在寻找和移动到某个特定时间时,你几乎完全取决于你正在使用的特定视频播放器。同样值得注意的是,对于给定的帧速率,如果你的帧速率低于1秒,那么可能没有一帧与你的时间精确对齐,因此玩家必须决定上一帧还是下一帧是最好的显示帧。