0
A
回答
1
由于网络条件在甚至中等长度的视频的持续时间内可能会发生相当大的变化,因此很难确保在开始之前通过尝试下载足够的缓冲区来缓冲视频。
保证它的唯一方法就是下载几乎所有的视频,即使如此,如果网络变得非常缓慢,您可能仍会在最后缓冲。
尝试获得高质量体验的常用方法是使用自适应比特率蒸汽。
要使用此功能,您需要在服务器上创建视频的多个不同比特率版本,并按时间将每个视频分成多个区块。 10秒大块。
然后,客户端通过块请求视频块,并进行一些正常缓冲,并根据网络条件选择要求下一个块的比特率。
所以如果网络好,用户将获得高分辨率的视频体验,如果它不好,分辨率将下降。只要有很好的比特率版本,就可以避免缓冲,除非网络非常糟糕。
您可以在YouTube上看到YouTube,Netflix等使用的这种技术 - 如果您查看可以随身携带的设置并强制它选择一种特定的比特率大小并查看效果(如果您选择高一个你可能会看到你描述的缓冲问题,除非你在一个非常好的互联网连接上)。
该方法还允许通过从较低带宽开始快速启动视频,然后再加速到较高视频,再一次视频被缓冲。
您还可以看到的比特率的步骤一个漂亮的图形视图,并通过右键单击视频,然后选择“详细统计”在YouTube上的缓冲区 - 它提供了这样一个观点:
如果您真的想在开始播放之前播放缓冲区的大小,那么您可能需要修改播放器本身或创建自己的播放器。
在网络播放器领域,HTML5播放器现在通常使用媒体源扩展(MSE),如果您愿意,它可以让您控制缓冲区。 MSE本质上是一种将缓冲区与HTML5视频src关联的机制,而不是通常的文件或URL。然后,您可以编写自己想要的JavaScript来填充缓冲区。一个很好的介绍是在这里(跳到下到MSE部分):
相关问题
- 1. Android应用程序开发中的预加载或预缓冲区.mp4视频
- 2. 有没有使用JavaScript预加载视频的方法?
- 3. 我如何缓存/预先加载Angular2 webapp的所有图像?
- 4. 使用VideoView缓冲视频
- 5. 如何在Android中播放/缓冲视频只有几分钟?
- 6. 如何加载部分视图内容并处理先前的部分视图?
- 7. 文件流没有缓冲,但部分流缓冲
- 8. 缓冲视频导致页面加载缓慢
- 9. jQuery ajax没有预先加载图像
- 10. HTML 5视频,流媒体/缓冲仅限长视频的特定部分
- 11. iOS:AVPlayer视频预加载
- 12. html5视频预加载
- 13. 如何使用laravel预先加载
- 14. 将视频文件加载到C++中的缓冲区中
- 15. 播放没有缓冲区的音频
- 16. 如何在VB/WPF项目中预先加载用于mediaelement的视频文件
- 17. 加载音频缓冲区并使用音频标签播放
- 18. 何时忽略HTML5视频预加载?
- 19. 减少视频缓冲
- 20. iPhone视频缓冲区
- 21. HTML5视频缓冲区
- 22. HTML5视频currentTime和缓冲
- 23. 视频加载器时,在社交媒体发布缓冲(angularJS)
- 24. Twilio节点api:没有视频部分?
- 25. 如何重绘只有一部分呈现帧缓冲区?
- 26. 如何使用php直接从外部硬盘驱动器加载缓冲视频?
- 27. 如何将视频循环回视频的现有部分?
- 28. 如何预先加载音频文件xcode
- 29. 显示:没有视频元素,它会被缓冲吗?
- 30. AVPlayer没有加载视频在iOS 8
你有任何想法如何,这些家伙[fiveminute.gs(http://www.fiveminutes.gs/)做过了吗?,他们预先加载了一部分视频作为加载屏幕,所以不存在缓冲问题。 –
加载屏幕只是一个图像 - 当您进入该网站时,视频开始。您可以通过观看浏览器工具的网络标签并查看何时请求mp4文件来查看。如果你有足够糟糕的连接,它仍然会失速(我可以看到这一点)。他们在Vimeo上托管它,并使用Vimeo CDN,这将为他们提供非常好的用户体验。 – Mick
我注意到他们正在加载一个巨大的文件,而他们显示加载屏幕[Here](http://www.fiveminutes.gs/scripts/db.js),这是什么?看起来像base64格式的mp3文件。 –