近期由于一个项目的需要,对Flash版本的播放器JWPlayer做了一些改进以支持一些功能,这里把中间用到的一些思路和做法记录下。
为了实现上述功能,在JWPlayer中进行如下改造:
1) 增加一个NetStream,用于载入下一段数据;
2)服务器需要支持可以通过start和end参数,来索取任意一段视频。比如http://www.a.com/1.flv?start=0&end=1024999这种,用于获取指定关键帧区间的视频(比如5分钟的)。
3)然后播放时,首先通过获取到的metadata,找出第一个5分钟的视频的结尾关键帧位置,然后构造一个NetStream去播放前面5分钟,由于服务器就只给5分钟数据,因此该stream不会不停缓冲服务器数据。
4)等播放到4:20秒左右时,启动一个新的NetStream载入下一段5分钟视频,但此时将video层放在正在播放的视频的下面(不可见)。
5)等第一段视频播放完成后,将第二段的NetStream接着播放,并切换两个video的位置,将第二段放到舞台的前面。
6)等第二段播放快完成时,用第一段的NetStream预载入下一段视频,不停重复上述逻辑直到视频结束。
经过上述处理后,可以非常可控的以分段的效果播放单段视频,既节省了服务器流量,又不需要对视频真正进行切分。
以上就是对JWPlayer Flash播放器如何实现视频分段载入播放从而节省带宽?这个问题的思路分享,希望对大家有帮助!