之前打算搭建个人游戏短视频网站(目前已上线),个人游戏短视频的核心要点就是视频播放的问题。毕竟视频是流量大户,而且各种PC端和移动端复杂的设备环境,对于一个不是程序猿的菜鸡来说比较困难。目前视频播放方案大概分为自建和调用第三方网站(优酷、腾讯)两种。

经过比对之后,龙鹰决定采用自行搭建视频播放方案。主要考虑原因如下:

1.自行搭建,所有数据通过二级域名独立出来,随时迁移方便。
2.上传方便,且视频不会被添加第三方标识。
3.访客观看方便,不会被添加其他乱七八糟的广告(如果以后多人看,个人添加的例外,起码不是乱七八糟)。
4.目前在又拍云有100G空余流量,再配合又拍云联盟每月15G流量的免费额度,足以支撑前期的视频播放流量(后期0.29/G的国内流量也不算贵)

既然决定自建,自然少不了折腾之旅。

一、视频播放格式的选择:MPEG4(H.264)

Html 5直接通过标签提供视频播放的可能。通常格式标准制定这样一种牵扯到利益的问题,通常都会非常多的矛盾。这次视频播放的格式同样如此。现有的H5视频格式总共有三个:Ogg、MPEG4、WebM。如果是最普通的做法,直接转换成三大格式进行调用,即可完美支持所有浏览器,不过这对于龙鹰来说是不现实的。三个视频格式,不单止会占用空间,而且人工转换时间成本非常高。

经过一翻资料查询之后发现,幸亏苹果在移动端的崛起,目前MPEG4(H.264)格式份额已经占市场80%以上(H.264是苹果设备唯一支持的格式)虽然Chrome 是WebM格式的支持者,但是目前暂时还是支持MPEG4(H.264)。目前Firefox和Opera和IE9以上都支持MPEG4(H.264)。于是MPEG4(H.264)成为个人短视频网站的格式首选。

二、浏览器兼容

一看到浏览器兼容,估计第一时间想到的就是IE。可能是混迹博客界多年,兼容浏览器已经成为下意识反应。毕竟目前中国市场,低版本IE还是占有一定的。选择兼容方案至关重要。

1.兼容方案一:国内外播放器插件

国内外都有比较优秀的播放器插件,支持swf+html5,并且提供各种功能的扩展,例如分段播放、广告插入、播放器样式订制、按钮订制等等。但是龙鹰个人比较喜欢简洁化,不喜欢网页加载太多的东西,什么ckplaer、Video.js,要不就需要加载太多的东西,要不就是接入感觉非常麻烦。不是程序员的龙鹰表示鸭梨山大,所以此套方案被剔除了。

2.兼容方案二:跨平台播放器:html5media.js

龙鹰经过比对之后的选择方案,只需要调用一个js文件,不支持h5的浏览器即可自动切换为flash播放。用户只需要在头部应用js文件,然后正确使用H5 video 标签即可,简单方便快捷。

头部引用方式(官方具备cdn加速的调用地址):

<script src="//api.html5media.info/1.2.2/html5media.min.js"></script>

官方地址:

https://html5media.info/

三、优化

1.视频格式优化:

生成视频直接使用最正规的MPEG4(H.264)格式。因为尽管IE9是支持MPEG4(H.264),但是如果格式并非H.264,就不会正确播放。

2.html5media.js本地化

不喜欢将东西放到第三方,防止因为各种不可扩力原因而造成不稳定。因此将html5media.js本地化是必须的。下载html5media.js上传即可。不过除了html5media.js以外,还需要将三个flash本地化,分别为flowplayer.swf、flowplayer.controls.swf和expressInstall.swf。三个swf文件都在js上有调用,记得修改相关的路径。三个flash 文件有两个能正常下载,一个无法下载,通过神奇的百度即可找到资源。

四、总结

目前短视频站已经支持最低IE6的视频播放,其他浏览器测试过之后基本没有什么大问题。