一种视频文件播放的方法、设备和系统的制作方法_3

文档序号:9436560阅读:来源:国知局
和S5022:
[0122]S5021:代理服务器根据所述终端当前已下载的切片文件的数据量获取所述下一个切片文件的编号;
[0123]其中,所述下一个切片文件的编号之前的所有切片文件的数据量总和等于所述终端当前已下载的切片文件的数据量;
[0124]例如,当下一个切片文件的编号为N+1时,那么,从编号I至编号N的所有切片文件的数据量总和等于所述终端当前已下载的切片文件数据量。因此具体的获取过程可以通过代理服务器通过对每个编号的切片文件之前的所有切片文件的数据量总和与所述终端当前已下载的切片文件数据量进行对比,当两者相等时,代理服务器就获取到下一个切片文件的编号。
[0125]S5022:代理服务器根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件,得到所述下一个切片文件在视频服务器上的下载地址;
[0126]其中,所述索引文件包括所述切片文件编号、所述切片文件数据大小及所述切片文件在所述视频服务器上的下载地址三者之间的映射关系。
[0127]具体地,如图7所示,S5022具体可以包括S50221至S50223:
[0128]S50221:代理服务器根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件;
[0129]S50222:所述代理服务器确定当前已获取的切片文件的索引文件中不包括所述下一个切片文件的编号时,从所述视频服务器获取更新的切片文件的索引文件,并从所述更新的切片文件的索引文件中获取所述下一个切片文件在所述视频服务器上的下载地址;
[0130]其中,所述更新的切片文件的索引文件包括所述下一个切片文件编号、所述下一个切片文件数据大小以及所述下一个切片文件在所述视频服务器上的下载地址;
[0131]S50223:所述代理服务器确定当前已获取的切片文件的索引文件中包括所述下一个切片文件的编号时,从所述当前已获取的切片文件的索引文件中获取所述下一个切片文件在所述视频服务器上的下载地址。
[0132]S503:代理服务器根据所述下一个切片文件在视频服务器上的下载地址下载所述下一个切片文件;
[0133]S504:代理服务器向所述终端发送所述下一个切片文件。
[0134]需要说明的是,每当终端需要从所述代理服务器下载下一个切片文件时,代理服务器都需要执行S501至S504,直至终端将播放文件的所有切片文件均下载完成。
[0135]还需要说明的是,当终端最初开始播放视频文件时,需要通过代理服务器进行下载视频文件的首个切片文件,此时,如图8所示,代理服务器向终端下发视频文件的首个切片文件的过程具体可以包括:
[0136]S801:代理服务器接收终端发送的视频播放请求消息,所述视频播放请求消息包括视频服务器的域名地址;
[0137]S802:代理服务器根据视频服务器的域名地址进行域名系统(DNS,Domain NameSystem)解析,获取视频服务器的互联网协议(IP, Internet Protocol)地址;
[0138]S803:代理服务器根据视频服务器的IP地址从所述视频服务器获取首个切片文件;
[0139]S804:代理服务器向所述终端发送所述首个切片文件。
[0140]结合图1所示的网络结构,在前述图2至图8所示的实施例的基础上,参见图9,其示出了本发明实施例提供的一种视频文件播放方法的详细流程,在本实施例中,需播放的视频文件可以是网上实时直播的数据流,需播放的视频文件的切片文件具体可以是动态图像专家组传输流(MPEG-TS, Moving Pictures Experts Group/Mot1n Pictures ExpertsGroup-Transport Stream)文件,而切片文件的索引文件可以是M3U8文件,该详细流程可以包括:
[0141]S901:终端向代理服务器发送视频播放请求消息;
[0142]其中,所述视频播放请求消息包括视频服务器的域名地址;
[0143]S902:代理服务器根据视频服务器的域名地址进行域名系统DNS解析,获取视频服务器的互联网协议IP地址;
[0144]S903:代理服务器根据视频服务器的IP地址从所述视频服务器获取首个MPEG-TS文件;
[0145]示例性地,具体的获取过程可以是代理服务器首先从视频服务器获取M3U8文件,然后根据M3U8文件对MPEG-TS文件进行下载,并且在此次以及后续对MPEG-TS文件下载时,从代理服务器处更新M3U8文件。
[0146]S904:代理服务器将首个MPEG-TS文件下发给所述终端;
[0147]S905:终端在下载首个MPEG-TS文件时,记录每一次从代理服务器接收TCP数据包的交互时长、每一次从所述代理服务器接收TCP数据包时的内存占用率以及从代理服务器下载首个MPEG-TS文件时的平均下载速率;
[0148]S906:终端从代理服务器下载完首个MPEG-TS文件之后,确定下载首个MPEG-TS文件时的网络性能及终端自身的内存状态;
[0149]具体地,结合S905的记录数据,终端确定网络性能及终端自身的内存状态的方式可以是:
[0150]当终端从所述代理服务器下载首个MPEG-TS文件时接收TCP数据包的交互时长的标准差处于第一阈值上限与第一阈值下限之间,且终端从所述代理服务器下载首个MPEG-TS文件时的平均下载速率处于第二阈值上限与第二阈值下限之间时,终端确定网络性能为正常状态;
[0151]当终端从所述代理服务器下载首个MPEG-TS文件时的内存占用率的标准差处于第三阈值上限与第三阈值下限之间时,终端确定自身的内存状态是正常状态;
[0152]当终端从所述代理服务器下载首个MPEG-TS文件时接收TCP数据包的交互时长的标准差未处于第一阈值上限与第一阈值下限之间,或终端从所述代理服务器下载首个MPEG-TS文件时的平均下载速率未处于第二阈值上限与第二阈值下限之间时,终端确定网络性能为异常状态;
[0153]当终端从所述代理服务器下载首个MPEG-TS文件时的内存占用率的标准差未处于第三阈值上限与第三阈值下限之间时,终端确定自身的内存状态为异常状态。
[0154]随后,终端可以根据网络性能及终端自身的内存状态来考虑从何处下载下一个MPEG-TS文件,具体为:
[0155]当终端确定网络性能和/或自身的内存状态为异常状态时,S907A:终端从代理服务器下载下一个MPEG-TS文件;
[0156]当终端确定网络性能和/或自身的内存状态为正常状态时,S907A:终端从视频服务器下载下一个MPEG-TS文件。
[0157]进一步地,在图9的基础上,如图10所示,S907A:终端从代理服务器下载下一个MPEG-TS文件的过程可以包括:
[0158]S9071A:终端向所述代理服务器发送第一业务请求消息;
[0159]其中,第一业务请求消息可以用于请求代理服务器发送下一个MPEG-TS文件,而所述第一业务请求消息可以包括所述终端当前已下载的MPEG-TS文件的数据量。
[0160]S9072A:代理服务器根据终端当前已下载的MPEG-TS文件的数据量查找代理服务器当前已获取的M3U8文件,得到下一个MPEG-TS文件在视频服务器上的下载地址;
[0161]其中,所述M3U8文件包括MPEG-TS文件编号、MPEG-TS文件数据大小及MPEG-TS文件在视频服务器上的下载地址三者之间的映射关系。本实施例中优选地可以通过映射表来实现。
[0162]具体地,如图10所述,S9072A具体可以包括:
[0163]S9072A1:代理服务器可以根据终端当前已下载的MPEG-TS文件的数据量获取所述下一个MPEG-TS文件的编号;
[0164]其中,所述下一个MPEG-TS文件的编号之前的所有MPEG-TS文件的数据量总和等于所述终端当前已下载的MPEG-TS文件的数据量。
[0165]例如,当下一个MPEG-TS文件的编号为N+1时,那么,从编号I至编号N的所有MPEG-TS文件的数据量总和等于所述终端当前已下载的MPEG-TS文件数据量。因此具体地获取过程可以通过代理服务器通过对每个编号的MPEG-TS文件之前的所有切片文件的数据量总和与所述终端当前已下载的MPEG-TS文件数据量进行对比,当两者相等时,代理服务器就获取到下一个MPEG-TS文件的编号。
[0166]S9072A2:代理服务器根据所述下一个MPEG-TS文件的编号查找所述代理服务器当前已获取的M3U8文件,得到所述下一个MPEG-TS文件在视频服务器上的下载地址;
[0167]需要说明的是,S9072A2可以进一步包括:
[0168]S9072A21:代理服务器根据所述下一个MPEG-TS文件的编号查找所述代理服务器当前已获取的M3U8文件,确定代理服务器当前已获取的M3U8文件中是否包括所述下一个MPEG-TS文件的编号;
[0169]S9072A22:代理服务器当前已获取的M3U8文件中不包括所述下一个MPEG-TS文件的编号时,从所述视频服务器获取更新的M3U8文件,
[0170]其中,所述更新的M3U8文件包括所述下一个MPEG-TS文件的编号以及所述下一个MPEG-TS文件在所述视频服务器上的下载地址;
[0171]S9072A23:代理服务器当前已获取的M3U8文件中包括所述下一个MPEG-TS文件的编号时,从所述当前已获取的M3U8文件中获取所述下一个MPEG-TS文件在所述视频服务器上的下载地址。
[0172]S9073A:代理服务器根据所述下一个MPEG-TS文件在视频服务器上的下载地址下载所述下一个MPEG-TS文件;
[0173]S9074A:终端从代理服务器下载所述下一个MPEG-TS文件。
[0174]进一步地,在图9的基础上,如图11所示,S907B:终端从视频服务器下载下一个MPEG-TS文件,可以包括:
[0175]S9071B:终端向视频服务器发送第二业务请求消息;
[0176]其中,所述第二业务请求消息用于向所述视频服务器请求下一个MPEG-TS文件,也可以包括终端当前已下载的MPEG-TS文件的数据量;
[0177]S9072B:视频服务器根据第二业务请求消息向终端发送M3U8文件;
[0178]其中,M3U8文件包括MPEG-TS文件的编号、数据大小及MPEG-TS文件在视频服务器上的下载地址三者之间的映射关系。
[0179]S9073B:终端根据当前已下载的MPEG-TS文件搜索所述M3U8文件,获取所述下一个MPEG-TS文件的编号及所述下一个MPEG-TS文件在所述视频服务器上的下载地址;
[0180]S9074B:终端根据所述下一个MPEG-TS文件在所述视频服务器上的下载地址从所述视频服务器下载所述下一个MPEG-TS文件。
[0181]可以理解地,S9071B至S9074B的过程与现有技术中终端直接从视频服务器下载MPEG-TS文件的过程相同,在此不再详细赘述。
[0182]需要说明的是,终端根据S9074A或S9074B下载下一个MPEG-TS文件时的,仍然可以按照S905对下载下
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1