1.一种缓存视频的方法,所述方法应用于播放设备,所述播放设备设置在视频网站的客户端中,其特征在于,包括:
获取目标视频的索引文件,所述索引文件按播放顺序包括组成所述目标视频的多个分片视频的网络地址和对应于各分片视频的播放时长,所述目标视频为在线的点播视频;
根据所述索引文件按所述播放顺序建立所述多个分片视频的信息索引关系,所述信息索引关系包括第一分片视频的起始时间和所述第一分片视频的描述信息的关联关系,所述第一分片视频的描述信息至少包括以下信息:所述第一分片视频的索引信息,所述第一分片视频的播放时长和所述第一分片视频的网络地址,所述第一分片视频为所述多个分片视频中的任一视频;
当接收到用户发送的用于将所述目标视频的播放位置定位至目标时刻的第一消息时,根据所述第一消息以及所述信息索引关系确定第二分片视频,所述目标时刻在所述第二分片视频的起始时刻和结束时刻之间;
判断所述第二分片视频中的缓存视频的结束时刻是否到达所述目标时刻;
若是,则从所述目标时刻播放所述第二分片视频;
其中,所述根据所述索引文件按所述播放顺序建立所述多个分片视频的信息索引关系,具体为:
将startTime和TsFileContext以键值对的方式,存储到m_tsFiles字典中,建立分片视频的信息索引关系;
其中,startTime为每个分片视频的起始时间;TsFileContext为一个结构,存储每个分片视频的索引信息、播放时长、起始时间、网络地址;
其中,根据第一消息以及信息索引关系确定第二分片视频,具体为:在m_tsFiles字典中找到所述目标时刻所位于的TsFileContext;
其中,所述方法还包括:在所述第二分片视频中对所述目标时刻进行定位,具体为:将目标时刻所在的TsFileContext赋值给m_currentTsFile,使得该TsFileContext成为当前TS文件;
调用waitTsFile函数打开所述当前TS文件;
调用av_seek_frame函数,将目标时刻所在的TsFileContext的FormatContext成员设置到av_seek_frame函数的第一个参数中,对所述当前TS文件进行定位;
其中,FormatContext的类型为AVFormatContext,通过调用avformat_open_input获取FormatContext,FormatContext通过自定义IO读取的方式读取所述当前TS文件中的视频包。
2.根据权利要求1所述的方法,其特征在于,所述判断所述第二分片视频中的缓存视频的结束时刻是否到达所述目标时刻之前,所述方法包括:确定所述第二分片视频的缓存进度;
根据所述缓存进度以及所述第二分片视频的起始时刻计算所述第二分片视频的缓存视频的结束时刻。
3.根据权利要求1所述的方法,其特征在于,所述确定所述第二分片视频的缓存进度之前,所述方法还包括:
将所述第二分片视频的缓存优先级设置为最高。
4.根据权利要求1或2所述的方法,所述从所述目标时刻播放所述第二分片视频之后,所述方法还包括:
判断所述第二分片视频是否为所述目标视频的最后一个分片视频;
若是,则当所述第二分片视频播放完毕时,停止播放所述目标视频。
5.一种播放设备,所述播放设备设置在视频网站的客户端中,其特征在于,包括:获取单元,用于获取目标视频的索引文件,所述索引文件按播放顺序包括组成所述目标视频的多个分片视频的网络地址和对应于各分片视频的播放时长,所述目标视频为在线的点播视频;
索引单元,用于根据所述索引文件按所述播放顺序建立所述多个分片视频的信息索引关系,所述信息索引关系包括第一分片视频的起始时间和所述第一分片视频的描述信息的关联关系,所述第一分片视频的描述信息至少包括以下信息:所述第一分片视频的索引信息,所述第一分片视频的播放时长和所述第一分片视频的网络地址,所述第一分片视频为所述多个分片视频中的任一视频;
第一确定单元,用于当接收到用户发送的用于将所述目标视频的播放位置定位至目标时刻的第一消息时,根据所述第一消息以及所述信息索引关系确定第二分片视频,所述目标时刻在所述第二分片视频的起始时刻和结束时刻之间;
判断单元,用于判断所述第二分片视频中的缓存视频的结束时刻是否到达所述目标时刻;
播放单元,用于当所述第二分片视频中的缓存视频的结束时刻到达所述目标时刻时,从所述目标时刻播放所述第二分片视频;
其中,所述根据所述索引文件按所述播放顺序建立所述多个分片视频的信息索引关系,具体为:
将startTime和TsFileContext以键值对的方式,存储到m_tsFiles字典中,建立分片视频的信息索引关系;
其中,startTime为每个分片视频的起始时间;TsFileContext为一个结构,存储每个分片视频的索引信息、播放时长、起始时间、网络地址;
其中,根据第一消息以及信息索引关系确定第二分片视频,具体为:在m_tsFiles字典中找到所述目标时刻所位于的TsFileContext;
在所述第二分片视频中对所述目标时刻进行定位,具体为:将目标时刻所在的TsFileContext赋值给m_currentTsFile,使得该TsFileContext成为当前TS文件;
调用waitTsFile函数打开所述当前TS文件;
调用av_seek_frame函数,将目标时刻所在的TsFileContext的FormatContext成员设置到av_seek_frame函数的第一个参数中,对所述当前TS文件进行定位;
其中,FormatContext的类型为AVFormatContext,通过调用avformat_open_input获取FormatContext,FormatContext通过自定义IO读取的方式读取所述当前TS文件中的视频包。
6.根据权利要求5所述的播放设备,其特征在于,所述播放设备还包括:第二确定单元,用于确定所述第二分片视频的缓存进度;
计算单元,用于根据所述缓存进度以及所述第二分片视频的起始时刻计算所述第二分片视频的缓存视频的结束时刻。
7.根据权利要求5所述的播放设备,其特征在于,所述播放设备还包括:设置单元,用于将所述第二分片视频的缓存优先级设置为最高。
8.根据权利要求5或6所述的播放设备,所述判断单元,还用于判断所述第二分片视频是否为所述目标视频的最后一个分片视频;
所述播放单元,还用于当所述第二分片视频为所述目标视频的最后一个分片视频,则当所述第二分片视频播放完毕时,停止播放所述目标视频。
9.一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如权利要求1至4中任意一项所述的缓存视频的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如权利要求1至4中任意一项所述的缓存视频的方法的步骤。