关于视频播放、视频切片、跨域访问视频
前言
最近在着手部署上线做的一个视频网站,当我们部署到云服务器上后并开始测试视频观看并发量,发现了一个很严重的问题:带宽不足。9 或 10 个人同时观看视频的时候,就会出现有些用户加载不了视频的问题。
我们的云服务器是 1块钱的腾讯云,本身带宽就很低了,所以肯定没有足够大的带宽来支撑这么大的流量传输。这对于一个视频网站来说,带宽这个问题是非常致命的。在不能改变带宽的条件下,于是我们去找了一些方法来提高性能。
分析不足
我们的视频网站使用的内置 Flash 播放器来播放视频,用户观看视频的时候是直接完全加载整个视频的(不管你看了多久),从一开始播放就开始加载,并且并不会因为用户暂停而暂停加载, 它是一直持续加载直到加载完全的。对于绝大多数用户来说,他们不一定会把视频看完,如果是加载一个小视频,那还没有什么大问题,但如果是加载一个大视频的话,这就会浪费的大量的流量,并且加载过程会持续占用带宽,使得用户量多的时候,视频加载就会出现问题。
修改第一步
了解到这个问题之后,我们去看了别人的视频网站是如何撑起高用户量的,在视频播放的时候,我们发现它们并不是一开始就完全加载视频的,而是一段段的加载,去搜索之后发现这是一种切片的技术,用于控制流量传输。具体的切片的原理可参看 http://www.cnblogs.com/flash3d/archive/2013/11/02/3403109.html。
了解了切片技术之后,我们于是就开始在我们项目中应用切片的技术,我们使用的是 ffmpeg 来对视频进行切片。方法就是在程序中调用 ffmpeg 程序&#