本发明涉及视频播放领域,具体是一种视频播放方法及系统。
背景技术:
视频播放领域,用户如果需要观看一个视频,通过一个视频流地址,从cdn(内容分发网络)实时下载视频数据来进行播放。从cdn拉取视频流过程中,有可能会因为网络抖动或者网络质量长期较差等出现视频播放卡顿的情况,导致播放体验不好,也有可能因为使用蜂窝网络播放导致流量消耗问题。
同时用户使用视频app有时间集中行为,会形成一个cdn带宽峰值,导致视频提供商出现较高的cdn网络带宽费用。
现有技术存在如下几个问题:
1.每次观看视频均需要从cdn实时下载,因为网络问题出现卡顿的概率高;
2.用户观看时间较为集中,形成带宽峰值,导致视频提供商cdn带宽费用较高。
技术实现要素:
本发明所要解决的技术问题是,针对现有技术不足,提供一种视频播放方法及系统,通过主动提示和主动预测的方式,结合带宽峰值判断情况,提前将视频推送到用户终端上,达到用户观看视频时,不用实时下载视频的目的。
为解决上述技术问题,本发明所采用的技术方案是:一种视频播放方法,包括以下步骤:
1)提示用户提前下载指定视频,或者根据用户的视频观看行为,预测命中的视频;
2)判断存储空间是否为需要下载的视频文件大小的n倍以上,若否,则认为空间不足,重复步骤2);若是,则进入步骤3);
3)将视频任务加入下载队列,在终端网络空闲时间,判断当前时间是否处于cdn带宽峰值时间,如果不处于cdn带宽峰值时间则启动下载,如果处于cdn带宽峰值时间则返回步骤2);
4)判断本地是否有已缓存视频,有则直接播放本地视频,没有则请求cdn拉取视频流。
本发明中,n=5。
相应的,本发明还提供了一种视频播放系统,其包括:
预测模块,用于提示用户提前下载指定视频,或者根据用户的视频观看行为,预测命中的视频;
第一判断模块,用于判断存储空间是否为需要下载的视频文件大小的n倍以上,若否,则认为空间不足,重复判断存储空间是否为需要下载的视频文件大小的n倍以上,直至空间充足,执行第二判断模块的操作;若是,则执行第二判断模块的操作;
第二判断模块,用于将视频任务加入下载队列,在终端网络空闲时间,判断当前时间是否处于cdn带宽峰值时间,如果不处于cdn带宽峰值时间则启动下载,如果处于cdn带宽峰值时间则执行第一判断模块的操作;
播放模块,用于判断本地是否有已缓存视频,有则直接播放本地视频,没有则请求cdn拉取视频流。
与现有技术相比,本发明所具有的有益效果为:本发明可以降低视频播放时需要通过实时请求cdn视频的概率,从而降低出现卡顿、播放失败的概率,提升播放体验;降低了cdn带宽峰值时间内访问cdn的概率,从而降低带宽费用。
附图说明
图1为本发明预推视频下载流程图;
图2为本发明预推视频播放流程图。
具体实施方式
1.在视频软件界面按钮主动提示用户提前下载指定视频,用户选中视频必然命中;视频软件内部主动预测分析视频观看行为:根据用户的视频观看行为,预测该命中哪些视频。比如之前看过一部电视剧多集,且更新了新的剧集则命中。比如之前多次看过同步一部视频且均未看完,则命中;
2.根据步骤1命中视频之后,判断存储空间是否足够,存储空间足够(存储空间是需要下载的视频文件大小的5倍以上)则命中,否则认为空间不足,不能影响设备运行性能;
3.步骤2存储空间命中之后,将视频任务加入下载队列,在终端网络空闲时间,判断当前时间是否处于cdn带宽峰值时间,如果不处于cdn带宽峰值时间则启动下载,如果处于cdn带宽峰值时间则继续轮询;
视频播放时先判断本地是否有已缓存视频,有则直接播放本地视频,没有则请求cdn拉取视频流。