找回密码
 注册
首页 ≡≡网络技术≡≡ WEB前端 让html5视频支持渐进式下载的播放

html 让html5视频支持渐进式下载的播放

灰儿 2017-11-5 18:12:42
随着HTML5大火,HTML5视频也已经广泛应用于各类视频网站,比如说Youtube和Hulu等都提供了HTML5的播放方式,但国内还比较少见。
相对于使用Flash播视频,采用HTML5播放,不仅流畅的多,而且性能有很大提升,这对提高用户体验有很大的帮助。
所谓渐进式下载(Progressive Downloading),就是将一个完整的视频文件,切分成小的片段,然后播放器通过HTTP一个一个的下载,再进行播放。现在国内外的所有视频网站,几乎都采用这种方式。
渐进式下载相对于传统下载整个视频文件播放的方式有很多优点:
1、节约资源。如果一个用户只想看某个视频的几十秒内容,或者说看了一半关了,如果是提供整视频下载播放,那后面没有看的内容就被白白浪费掉了,带宽很贵啊。但渐进式下载可以很容易的控制,播一点,下一点,节约资源。
2、防盗。如果是提供整视频下载播放,那用户几乎很容易就可以把视频拖走了。但渐进式下载就相对麻烦很多,首先用户要收集每个视频的地址,下载之后还要把它们拼接起来,可以有效的防盗。
那么现在问题来了,HTML5默认是不支持渐进式下载的,如何实现呢?
有人或许会尝试过,用JS监控视频的播放,当前一个视频片段播完之后,立刻删除掉这个Video标签,并创建下一个Video标签并播放。看起来可行,但现实是残酷的,这样做的话,播起来会有明显的延迟,是不能接受的。
如果大家翻墙看过Youtube的视频的话,就会发现Youtube是默认采用的HTML5播放器,监听网络流的话,会发现它也使用了渐进式下载的方式。经过仔细观察,可以看到它使用了Media Source Extension这个新的特性,它支持用JS操作视频流,这样就可以做到平滑的拼接各个视频片段,毫无延迟。但有一点比较遗憾,这个新特性只在Chrome和IE 11(win8)上有效,其它浏览器都不默认支持,但可以装扩展。
所以,如果要在实际环境里应用HTML5渐进式播放视频的话,目前还必须配有Flash播放器,当用户支持HTML5的时候使用HTML5,否则降级到Flash。
目前Github上已经有比较好的现成解决方案了,详见Video.JS。支持自动降级,支持渐进式下载,支持HLS等等。
P.S. 去看看你的浏览器是否支持HTML5视频渐进式播放,https://www.youtube.com/html5(需翻墙)

您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。