发明内容
本发明实施例期望提供一种视频文件播放的方法、设备和系统,降低无线网络性能对视频播放性能的影响。
为解决上述技术问题,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种视频文件播放的方法,所述方法包括:
终端从代理服务器或视频服务器下载切片文件之后,确定下载所述切片文件时的网络性能和/或自身的内存状态;
当所述网络性能和/或所述终端的内存状态为异常状态时,所述终端向所述代理服务器发送第一业务请求消息,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;
所述终端接收所述代理服务器下发的下一个切片文件,所述下一个切片文件由所述代理服务器根据所述终端当前已下载的切片文件信息获得。
根据第一种可能的实现方式,结合第一方面,所述终端确定下载所述切片文件时的网络性能,包括:
所述终端确定从所述代理服务器或所述视频服务器接收传输控制协议TCP数据包的交互时长的标准差不符合第一判定规则,或确定从所述代理服务器或所述视频服务器下载所述切片文件时的平均下载速率不符合第二判定规则时,所述终端确定下载所述切片文件的网络性能为异常状态。
根据第二种可能的实现方式,结合第一方面,所述终端确定下载所述切片文件时的自身的内存状态,包括:
所述终端确定从所述代理服务器或所述视频服务器下载所述切片文件时的内存占用率的标准差不符合第三判定规则时,所述终端确定下载所述切片文件时的自身的内存状态为异常状态。
根据第三种可能的实现方式,结合第一种或第二种可能的实现方式,所述第一判定规则包括:所述终端从所述代理服务器或所述视频服务器接收TCP数据包的交互时长的标准差处于第一阈值上限与第一阈值下限之间;
所述第二判定规则包括:所述终端从所述代理服务器或所述视频服务器下载所述切片文件时的平均下载速率处于第二阈值上限与第二阈值下限之间;
所述第三判定规则包括:所述终端从所述代理服务器或所述视频服务器下载所述切片文件时的内存占用率的标准差处于第三阈值上限与第三阈值下限之间。
根据第四种可能的实现方式,结合第一方面,所述方法还包括:
所述终端向所述代理服务器发送视频播放请求消息;
所述终端接收所述代理服务器根据所述视频播放请求消息下发的首个切片文件。
第二方面,本发明实施例提供了一种视频文件播放的方法,所述方法包括:
代理服务器接收终端发送的第一业务请求消息,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;
所述代理服务器根据所述终端当前已下载的切片文件信息获取下一个切片文件在视频服务器上的下载地址;
所述代理服务器根据所述下一个切片文件在所述视频服务器上的下载地址下载所述下一个切片文件;
所述代理服务器向所述终端发送所述下一个切片文件。
根据第一种可能的实现方式,结合第二方面,所述终端当前已下载的切片文件信息包括所述终端当前已下载的切片文件的数据量。
根据第二种可能的实现方式,结合第一种可能的实现方式,所述代理服务器根据所述终端当前已下载的切片文件信息获取下一个切片文件在视频服务器上的下载地址,包括:
所述代理服务器根据所述终端当前已下载的切片文件的数据量获取所述下一个切片文件的编号,其中,所述下一个切片文件的编号之前的所有切片文件的数据量总和等于所述终端当前已下载的切片文件的数据量;
所述代理服务器根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件,得到所述下一个切片文件在视频服务器上的下载地址,所述索引文件包括所述切片文件编号、所述切片文件数据大小及所述切片文件在所述视频服务器上的下载地址三者之间的映射关系。
根据第三种可能的实现方式,结合第一种可能的实现方式,所述代理服务器根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件,得到所述下一个切片文件在视频服务器上的下载地址,包括:
所述代理服务器根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件;
所述代理服务器确定当前已获取的切片文件的索引文件中不包括所述下一个切片文件的编号时,从所述视频服务器获取更新的切片文件的索引文件,并从所述更新的切片文件的索引文件中获取所述下一个切片文件在所述视频服务器上的下载地址,其中,所述更新的切片文件的索引文件包括所述下一个切片文件编号、所述下一个切片文件数据大小以及所述下一个切片文件在所述视频服务器上的下载地址;
所述代理服务器确定当前已获取的切片文件的索引文件中包括所述下一个切片文件的编号时,从所述当前已获取的切片文件的索引文件获取所述下一个切片文件在所述视频服务器上的下载地址。
根据第四种可能的实现方式,结合第二方面,所述方法还包括:
所述代理服务器接收所述终端发送的视频播放请求消息,所述视频播放请求消息包括所述视频服务器的域名地址;
所述代理服务器根据所述视频服务器的域名地址进行域名系统DNS解析,获取所述视频服务器的互联网协议IP地址;
所述代理服务器根据所述视频服务器的IP地址从所述视频服务器获取首个切片文件;
所述代理服务器向所述终端发送所述首个切片文件。
第三方面,本发明实施例提供了一种终端,所述终端包括:确定单元、发送单元和接收单元,其中,
所述确定单元,用于所述接收单元从代理服务器或视频服务器下载切片文件之后,确定下载切片文件时的网络性能和/或所述终端自身的内存状态;
所述发送单元,用于当所述确定单元确定所述网络性能和/或所述终端自身的内存状态为异常状态时,向所述代理服务器发送第一业务请求消息,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;
所述接收单元,用于接收所述代理服务器下发的下一个切片文件,所述下一个切片文件由所述代理服务器根据所述终端当前已下载的切片文件信息获得。
根据第一种可能的实现方式,结合第三方面,所述确定单元,用于确定所述接收单元从所述代理服务器或所述视频服务器接收TCP数据包的交互时长的标准差不符合第一判定规则,或确定所述接收单元从所述代理服务器或所述视频服务器下载所述切片文件时的平均下载速率不符合第二判定规则时,确定所述接收单元下载所述切片文件的网络性能为异常状态。
根据第二种可能的实现方式,结合第三方面,所述确定单元,用于确定所述接收单元从所述代理服务器或所述视频服务器下载所述切片文件时的内存占用率的标准差不符合第三判定规则时,确定所述接收单元下载所述切片文件时的所述终端自身的内存状态为异常状态。
根据第三种可能的实现方式,结合第一种或第二种可能的实现方式,所述第一判定规则包括:所述接收单元从所述代理服务器或所述视频服务器接收TCP数据包的交互时长的标准差处于第一阈值上限与第一阈值下限之间;
所述第二判定规则包括:所述接收单元从所述代理服务器或所述视频服务器下载所述切片文件时的平均下载速率处于第二阈值上限与第二阈值下限之间;
所述第三判定规则包括:所述接收单元从所述代理服务器或所述视频服务器下载所述切片文件时的内存占用率的标准差处于第三阈值上限与第三阈值下限之间。
根据第四种可能的实现方式,结合第三方面,所述发送单元,还用于向所述代理服务器发送视频播放请求消息;
所述接收单元,还用于接收所述代理服务器根据所述视频播放请求消息下发的首个切片文件。
第四方面,本发明实施例提供了一种代理服务器,所述代理服务器可以包括接收单元,获取单元和发送单元,其中,
所述接收单元,用于接收终端发送的第一业务请求消息,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;
所述获取单元,用于根据所述终端当前已下载的切片文件信息获取下一个切片文件在视频服务器上的下载地址;
所述接收单元,用于根据所述下一个切片文件在所述视频服务器上的下载地址下载所述下一个切片文件;
所述发送单元,用于向所述终端发送所述下一个切片文件。
根据第一种可能的实现方式,结合第四方面,所述终端当前已下载的切片文件信息包括所述终端当前已下载的切片文件的数据量。
根据第二种可能的实现方式,结合第一种可能的实现方式,所述获取单元包括:获取模块和查找模块,其中,
所述获取模块,用于根据所述终端当前已下载的切片文件的数据量获取所述下一个切片文件的编号,其中,所述下一个切片文件的编号之前的所有切片文件的数据量总和等于所述终端当前已下载的切片文件的数据量;
所述查找模块,用于根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件,得到所述下一个切片文件在视频服务器上的下载地址,所述索引文件包括所述切片文件编号、所述切片文件数据大小及所述切片文件在所述视频服务器上的下载地址三者之间的映射关系。
根据第三种可能的实现方式,结合第一种可能的实现方式,所述查找模块,用于根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件;
所述查找模块确定当前已获取的切片文件的索引文件中不包括所述下一个切片文件的编号时,触发获取模块从所述视频服务器获取更新的切片文件的索引文件,并从所述更新的切片文件的索引文件中获取所述下一个切片文件在所述视频服务器上的下载地址,其中,所述更新的切片文件的索引文件包括所述下一个切片文件编号、所述下一个切片文件数据大小以及所述下一个切片文件在所述视频服务器上的下载地址;
所述查找模块确定当前已获取的切片文件的索引文件中包括所述下一个切片文件的编号时,触发获取模块从所述当前已获取的切片文件的索引文件获取所述下一个切片文件在所述视频服务器上的下载地址。
根据第四种可能的实现方式,结合第四方面,所述接收单元,还用于接收所述终端发送的视频播放请求消息,所述视频播放请求消息包括所述视频服务器的域名地址;
所述代理服务器还包括解析单元,用于根据所述视频服务器的域名地址进行域名系统DNS解析,获取所述视频服务器的互联网协议IP地址;
所述接收单元,还用于根据所述视频服务器的IP地址从所述视频服务器获取首个切片文件;
所述发送单元,还用于向所述终端发送所述首个切片文件。
第五方面,本发明实施例提供了一种视频文件播放的系统,所述系统包括终端、代理服务器和视频服务器,其中,
所述终端,用于确定下载所述切片文件时的网络性能和/或自身的内存状态;
以及当所述网络性能和/或所述终端的内存状态为异常状态时,向所述代理服务器发送第一业务请求消息,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;
以及接收所述代理服务器下发的下一个切片文件,所述下一个切片文件由所述代理服务器根据所述终端当前已下载的切片文件信息获得。
所述代理服务器,用于接收所述终端发送的第一业务请求消息,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;
以及根据所述终端当前已下载的切片文件信息获取下一个切片文件在所述视频服务器上的下载地址;
以及根据所述下一个切片文件在所述视频服务器上的下载地址下载所述下一个切片文件;
以及向所述终端发送所述下一个切片文件。
本发明实施例提供了一种视频文件播放的方法、设备和系统,终端通过对网络性能和/或自身内存条件的判断来确定从代理服务器或视频服务器下载切片文件,从而降低了无线网络性能对视频播放性能的影响。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
请参考图1,其示出了本发明实施例提供的视频文件播放方法的应用网络结构图。在本网络结构中,包括视频服务器、代理服务器和终端,在本网络结构中,视频服务器通过有线或者无线的方式分别与代理服务器和终端进行连接,如图1中双向箭头所示,用于实现视频服务器分别与代理服务器和终端互联;代理服务器也可以通过有线或者无线的方式与终端进行连接,如图1中双向箭头所示,用于实现与终端的互联。
其中,终端可以是手机、平板电脑、电子书阅读器、动态影像专家压缩标准音频层面3播放器(MP3,Moving Picture Experts Group Audio Layer III)、动态影像专家压缩标准音频层面4(MP4,Moving Picture Experts Group Audio Layer IV)播放器、膝上型便携计算机、台式计算机以及智能电视等等。
本实施例中提到的客户端可以是用于播放视频文件的客户端,该客户端可以运行在终端中。
参见图2,其示出了本发明实施例提供的一种视频文件播放的方法流程示意图,该方法可以应用在终端中,如图2所示,该方法可以包括:
S201:终端从代理服务器或视频服务器下载切片文件之后,确定下载所述切片文件时的网络性能和/或所述终端自身的内存状态;
需要说明的是,切片文件可以是视频服务器将需要播放的视频文件分割成连续的、很短时长的媒体文件来得到。
具体地,终端可以在从所述代理服务器或所述视频服务器下载切片文件时,可以记录每一次从所述代理服务器或所述视频服务器接收传输控制协议(TCP,TransmissionControl Protocol)数据包的交互时长、每一次从所述代理服务器或所述视频服务器接收TCP数据包时的内存占用率以及从代理服务器或视频服务器下载所述切片文件过程的平均下载速率,并且可以根据这些记录下来的数据确定下载所述切片文件时的网络性能和/或自身的内存状态;
可以理解地,终端可以在这些记录数据的基础上确定下载所述切片文件时的网络性能和/或自身的内存状态,具体包括:
一方面,所述终端确定从所述代理服务器或所述视频服务器接收传输控制协议TCP数据包的交互时长的标准差不符合第一判定规则,或所述终端确定从所述代理服务器或所述视频服务器下载所述切片文件时的平均下载速率不符合第二判定规则时,所述终端可以确定下载所述切片文件网络性能为异常状态。
另一方面,所述终端确定从所述代理服务器或所述视频服务器下载所述切片文件时的内存占用率的标准差不符合第三判定规则时,所述终端确定下载所述切片文件时的自身的内存状态为异常状态。
优选地,前述的符合第一判定规则可以是所述终端从所述代理服务器或所述视频服务器接收TCP数据包的交互时长的标准差处于第一阈值上限与第一阈值下限之间;同样的,符合第二判定规则可以是所述终端从所述代理服务器或所述视频服务器下载所述切片文件时的平均下载速率处于第二阈值上限与第二阈值下限之间;符合第三判定规则可以是所述终端从所述代理服务器或所述视频服务器下载所述切片文件时的内存占用率的标准差处于第三阈值上限与第三阈值下限之间。需要说明的是,第一阈值上限、第一阈值下限、第二阈值上限、第二阈值下限、第三阈值上限和第三阈值下限都可以预先根据经验数据或者下载时的实际情况进行具体地设置,本实施例中不作具体限定。
S202:当所述网络性能和/或所述终端的内存状态为异常状态时,所述终端向所述代理服务器发送第一业务请求消息;
示例性地,所述第一业务请求消息可以用于请求所述代理服务器发送下一个切片文件,其中,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;优选地,所述终端当前已下载的切片文件信息可以包括所述终端当前已下载的切片文件的数据量。
S203:终端接收所述代理服务器下发的下一个切片文件;
可以理解地,所述下一个切片文件由所述代理服务器根据所述终端当前已下载的切片文件信息获得。
示例性地,当终端通过S201确定网络性能和所述终端自身的内存状态均为正常状态时,所述终端可以直接从视频服务器下载切片文件,如图3所示,所述终端直接从视频服务器下载切片文件的过程可以包括:
S301:所述终端向所述视频服务器发送第二业务请求消息;
S302:所述终端接收所述视频服务器发送的切片文件的索引文件,其中,所述索引文件包括所述切片文件编号、所述切片文件数据大小及所述切片文件在所述视频服务器上的下载地址三者之间的映射关系;
S303:所述终端根据当前已下载的切片文件搜索所述索引文件,获取所述下一个切片文件的编号及所述下一个切片文件在所述视频服务器上的下载地址;
S304:所述终端根据所述下一个切片文件在所述视频服务器上的下载地址从所述视频服务器下载所述下一个切片文件。
需要说明的是,终端在从所述代理服务器或者所述视频服务器下载下一个切片文件之后,需要重复执行S201以确定网络性能及终端自身的内存状态,并在当网络性能和/或终端自身的内存状态为异常状态时,通过S202至S203从代理服务器下载后续的切片文件;当网络性能和终端自身的内存状态均为正常状态时,通过S301至S304从视频服务器下载后续的切片文件,直至需要播放的视频文件的所有切片文件均下载完毕。
还需要说明的是,当终端最初开始播放视频文件时,需要通过代理服务器进行下载视频文件的首个切片文件,如图4所示,具体过程可以包括:
S401:所述终端向所述代理服务器发送视频播放请求消息;
S402:所述终端接收所述代理服务器根据所述视频播放请求消息下发的首个切片文件。
本实施例提供了一种视频文件播放的方法,终端通过对网络性能和自身内存条件的判断来确定从代理服务器或视频服务器下载切片文件,从而降低了无线网络性能对视频播放性能的影响。
参见图5,其示出了本发明实施例提出的另一种视频文件播放的方法流程示意图,该方法可以应用在代理服务器中,如图5所示,该方法可以包括:
S501:代理服务器接收终端发送的第一业务请求消息;
其中,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;优选地,所述终端当前已下载的切片文件信息可以包括所述终端当前已下载的切片文件的数据量。
S502:代理服务器根据所述终端当前已下载的切片文件信息获取下一个切片文件在视频服务器上的下载地址;
优选地,所述终端当前已下载的切片文件信息包括所述终端当前已下载的切片文件的数据量,相应地,如图6所示,S502具体可以包括S5021和S5022:
S5021:代理服务器根据所述终端当前已下载的切片文件的数据量获取所述下一个切片文件的编号;
其中,所述下一个切片文件的编号之前的所有切片文件的数据量总和等于所述终端当前已下载的切片文件的数据量;
例如,当下一个切片文件的编号为N+1时,那么,从编号1至编号N的所有切片文件的数据量总和等于所述终端当前已下载的切片文件数据量。因此具体的获取过程可以通过代理服务器通过对每个编号的切片文件之前的所有切片文件的数据量总和与所述终端当前已下载的切片文件数据量进行对比,当两者相等时,代理服务器就获取到下一个切片文件的编号。
S5022:代理服务器根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件,得到所述下一个切片文件在视频服务器上的下载地址;
其中,所述索引文件包括所述切片文件编号、所述切片文件数据大小及所述切片文件在所述视频服务器上的下载地址三者之间的映射关系。
具体地,如图7所示,S5022具体可以包括S50221至S50223:
S50221:代理服务器根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件;
S50222:所述代理服务器确定当前已获取的切片文件的索引文件中不包括所述下一个切片文件的编号时,从所述视频服务器获取更新的切片文件的索引文件,并从所述更新的切片文件的索引文件中获取所述下一个切片文件在所述视频服务器上的下载地址;
其中,所述更新的切片文件的索引文件包括所述下一个切片文件编号、所述下一个切片文件数据大小以及所述下一个切片文件在所述视频服务器上的下载地址;
S50223:所述代理服务器确定当前已获取的切片文件的索引文件中包括所述下一个切片文件的编号时,从所述当前已获取的切片文件的索引文件中获取所述下一个切片文件在所述视频服务器上的下载地址。
S503:代理服务器根据所述下一个切片文件在视频服务器上的下载地址下载所述下一个切片文件;
S504:代理服务器向所述终端发送所述下一个切片文件。
需要说明的是,每当终端需要从所述代理服务器下载下一个切片文件时,代理服务器都需要执行S501至S504,直至终端将播放文件的所有切片文件均下载完成。
还需要说明的是,当终端最初开始播放视频文件时,需要通过代理服务器进行下载视频文件的首个切片文件,此时,如图8所示,代理服务器向终端下发视频文件的首个切片文件的过程具体可以包括:
S801:代理服务器接收终端发送的视频播放请求消息,所述视频播放请求消息包括视频服务器的域名地址;
S802:代理服务器根据视频服务器的域名地址进行域名系统(DNS,Domain NameSystem)解析,获取视频服务器的互联网协议(IP,Internet Protocol)地址;
S803:代理服务器根据视频服务器的IP地址从所述视频服务器获取首个切片文件;
S804:代理服务器向所述终端发送所述首个切片文件。
结合图1所示的网络结构,在前述图2至图8所示的实施例的基础上,参见图9,其示出了本发明实施例提供的一种视频文件播放方法的详细流程,在本实施例中,需播放的视频文件可以是网上实时直播的数据流,需播放的视频文件的切片文件具体可以是动态图像专家组传输流(MPEG-TS,Moving Pictures Experts Group/Motion Pictures ExpertsGroup-Transport Stream)文件,而切片文件的索引文件可以是M3U8文件,该详细流程可以包括:
S901:终端向代理服务器发送视频播放请求消息;
其中,所述视频播放请求消息包括视频服务器的域名地址;
S902:代理服务器根据视频服务器的域名地址进行域名系统DNS解析,获取视频服务器的互联网协议IP地址;
S903:代理服务器根据视频服务器的IP地址从所述视频服务器获取首个MPEG-TS文件;
示例性地,具体的获取过程可以是代理服务器首先从视频服务器获取M3U8文件,然后根据M3U8文件对MPEG-TS文件进行下载,并且在此次以及后续对MPEG-TS文件下载时,从代理服务器处更新M3U8文件。
S904:代理服务器将首个MPEG-TS文件下发给所述终端;
S905:终端在下载首个MPEG-TS文件时,记录每一次从代理服务器接收TCP数据包的交互时长、每一次从所述代理服务器接收TCP数据包时的内存占用率以及从代理服务器下载首个MPEG-TS文件时的平均下载速率;
S906:终端从代理服务器下载完首个MPEG-TS文件之后,确定下载首个MPEG-TS文件时的网络性能及终端自身的内存状态;
具体地,结合S905的记录数据,终端确定网络性能及终端自身的内存状态的方式可以是:
当终端从所述代理服务器下载首个MPEG-TS文件时接收TCP数据包的交互时长的标准差处于第一阈值上限与第一阈值下限之间,且终端从所述代理服务器下载首个MPEG-TS文件时的平均下载速率处于第二阈值上限与第二阈值下限之间时,终端确定网络性能为正常状态;
当终端从所述代理服务器下载首个MPEG-TS文件时的内存占用率的标准差处于第三阈值上限与第三阈值下限之间时,终端确定自身的内存状态是正常状态;
当终端从所述代理服务器下载首个MPEG-TS文件时接收TCP数据包的交互时长的标准差未处于第一阈值上限与第一阈值下限之间,或终端从所述代理服务器下载首个MPEG-TS文件时的平均下载速率未处于第二阈值上限与第二阈值下限之间时,终端确定网络性能为异常状态;
当终端从所述代理服务器下载首个MPEG-TS文件时的内存占用率的标准差未处于第三阈值上限与第三阈值下限之间时,终端确定自身的内存状态为异常状态。
随后,终端可以根据网络性能及终端自身的内存状态来考虑从何处下载下一个MPEG-TS文件,具体为:
当终端确定网络性能和/或自身的内存状态为异常状态时,S907A:终端从代理服务器下载下一个MPEG-TS文件;
当终端确定网络性能和/或自身的内存状态为正常状态时,S907A:终端从视频服务器下载下一个MPEG-TS文件。
进一步地,在图9的基础上,如图10所示,S907A:终端从代理服务器下载下一个MPEG-TS文件的过程可以包括:
S9071A:终端向所述代理服务器发送第一业务请求消息;
其中,第一业务请求消息可以用于请求代理服务器发送下一个MPEG-TS文件,而所述第一业务请求消息可以包括所述终端当前已下载的MPEG-TS文件的数据量。
S9072A:代理服务器根据终端当前已下载的MPEG-TS文件的数据量查找代理服务器当前已获取的M3U8文件,得到下一个MPEG-TS文件在视频服务器上的下载地址;
其中,所述M3U8文件包括MPEG-TS文件编号、MPEG-TS文件数据大小及MPEG-TS文件在视频服务器上的下载地址三者之间的映射关系。本实施例中优选地可以通过映射表来实现。
具体地,如图10所述,S9072A具体可以包括:
S9072A1:代理服务器可以根据终端当前已下载的MPEG-TS文件的数据量获取所述下一个MPEG-TS文件的编号;
其中,所述下一个MPEG-TS文件的编号之前的所有MPEG-TS文件的数据量总和等于所述终端当前已下载的MPEG-TS文件的数据量。
例如,当下一个MPEG-TS文件的编号为N+1时,那么,从编号1至编号N的所有MPEG-TS文件的数据量总和等于所述终端当前已下载的MPEG-TS文件数据量。因此具体地获取过程可以通过代理服务器通过对每个编号的MPEG-TS文件之前的所有切片文件的数据量总和与所述终端当前已下载的MPEG-TS文件数据量进行对比,当两者相等时,代理服务器就获取到下一个MPEG-TS文件的编号。
S9072A2:代理服务器根据所述下一个MPEG-TS文件的编号查找所述代理服务器当前已获取的M3U8文件,得到所述下一个MPEG-TS文件在视频服务器上的下载地址;
需要说明的是,S9072A2可以进一步包括:
S9072A21:代理服务器根据所述下一个MPEG-TS文件的编号查找所述代理服务器当前已获取的M3U8文件,确定代理服务器当前已获取的M3U8文件中是否包括所述下一个MPEG-TS文件的编号;
S9072A22:代理服务器当前已获取的M3U8文件中不包括所述下一个MPEG-TS文件的编号时,从所述视频服务器获取更新的M3U8文件,
其中,所述更新的M3U8文件包括所述下一个MPEG-TS文件的编号以及所述下一个MPEG-TS文件在所述视频服务器上的下载地址;
S9072A23:代理服务器当前已获取的M3U8文件中包括所述下一个MPEG-TS文件的编号时,从所述当前已获取的M3U8文件中获取所述下一个MPEG-TS文件在所述视频服务器上的下载地址。
S9073A:代理服务器根据所述下一个MPEG-TS文件在视频服务器上的下载地址下载所述下一个MPEG-TS文件;
S9074A:终端从代理服务器下载所述下一个MPEG-TS文件。
进一步地,在图9的基础上,如图11所示,S907B:终端从视频服务器下载下一个MPEG-TS文件,可以包括:
S9071B:终端向视频服务器发送第二业务请求消息;
其中,所述第二业务请求消息用于向所述视频服务器请求下一个MPEG-TS文件,也可以包括终端当前已下载的MPEG-TS文件的数据量;
S9072B:视频服务器根据第二业务请求消息向终端发送M3U8文件;
其中,M3U8文件包括MPEG-TS文件的编号、数据大小及MPEG-TS文件在视频服务器上的下载地址三者之间的映射关系。
S9073B:终端根据当前已下载的MPEG-TS文件搜索所述M3U8文件,获取所述下一个MPEG-TS文件的编号及所述下一个MPEG-TS文件在所述视频服务器上的下载地址;
S9074B:终端根据所述下一个MPEG-TS文件在所述视频服务器上的下载地址从所述视频服务器下载所述下一个MPEG-TS文件。
可以理解地,S9071B至S9074B的过程与现有技术中终端直接从视频服务器下载MPEG-TS文件的过程相同,在此不再详细赘述。
需要说明的是,终端根据S9074A或S9074B下载下一个MPEG-TS文件时的,仍然可以按照S905对下载下一个MPEG-TS文件时的相关数据进行记录,并按照S906确定下载下一个MPEG-TS文件时的网络性能和/或自身的内存状态,以及根据下载下一个MPEG-TS文件时的网络性能和/或自身的内存状态确定从代理服务器或者视频服务器下载下一个之后的MPEG-TS文件,具体的从代理服务器下载的过程如S9071A至S9074A所述,从视频服务器下载的过程如S9071B至S9074B所述,在此不再赘述,直至终端将需播放的视频文件的最后一个MPEG-TS文件下载完毕。
本实施例提供了一种视频文件播放的方法详细流程,终端通过对网络性能和自身内存条件的判断来确定从代理服务器或视频服务器下载MPEG-TS文件,从而降低了无线网络性能对视频播放性能的影响。
参见图12,其示出了本发明实施例提供的一种终端120,该终端可以包括:确定单元1201、发送单元1202和接收单元1203,其中,
所述确定单元1201,用于所述接收单元1203从代理服务器或视频服务器下载切片文件之后,确定下载切片文件时的网络性能和/或终端120自身的内存状态;
所述发送单元1202,用于当所述确定单元1201确定所述网络性能和/或终端120自身的内存状态为异常状态时,向所述代理服务器发送第一业务请求消息,所述第一业务请求消息包括所述终端120当前已下载的切片文件信息;
所述接收单元1203,用于接收所述代理服务器下发的下一个切片文件,所述下一个切片文件由所述代理服务器根据所述终端120当前已下载的切片文件信息获得。
需要说明的是,切片文件可以是视频服务器将需要播放的视频文件分割成连续的、很短时长的媒体文件来得到。
示例性地,参见图13,终端120还可以包括记录单元1204,用于在所述接收单元1203从所述代理服务器或所述视频服务器下载切片文件时,记录所述接收单元1203每一次从所述代理服务器或所述视频服务器接收传输控制协议TCP数据包的交互时长、所述接收单元1203每一次从所述代理服务器或所述视频服务器接收TCP数据包时的内存占用率以及所述接收单元1203从代理服务器或视频服务器下载所述切片文件时的平均下载速率。
可以理解地,确定单元1201可以在这些记录数据的基础上确定下载所述切片文件时的网络性能和/或终端120自身的内存状态,确定单元1201具体用于:
确定所述接收单元1203从所述代理服务器或所述视频服务器接收TCP数据包的交互时长的标准差不符合第一判定规则,或确定接收单元1203从所述代理服务器或所述视频服务器下载所述切片文件时的平均下载速率不符合第二判定规则时,确定接收单元1203下载所述切片文件时的网络性能为异常状态;
确定所述接收单元1203从所述代理服务器或所述视频服务器下载所述切片文件时的内存占用率的标准差不符合第三判定规则时,确定接收单元1203下载所述切片文件时的终端120自身的内存状态为异常状态。
需要说明的是,前述的符合第一判定规则可以是接收单元1203从所述代理服务器或所述视频服务器接收TCP数据包的交互时长的标准差处于第一阈值上限与第一阈值下限之间;同样的,符合第二判定规则可以是接收单元1203从所述代理服务器或所述视频服务器下载所述切片文件时的平均下载速率处于第二阈值上限与第二阈值下限之间;符合第三判定规则可以是所述终端从所述代理服务器或所述视频服务器下载所述切片文件时的内存占用率的标准差处于第三阈值上限与第三阈值下限之间。需要说明的是,第一阈值上限、第一阈值下限、第二阈值上限、第二阈值下限、第三阈值上限和第三阈值下限都可以是预先根据经验数据进行设置的,本实施例中不做具体限定。
还需要说明的是,当终端120最初开始播放视频文件时,需要通过代理服务器进行下载视频文件的首个切片文件,此时,所述发送单元1202还用于向所述代理服务器发送视频播放请求消息;
所述接收单元1203,还用于接收所述代理服务器根据所述视频播放请求消息下发的首个切片文件。
本发明实施例提供了一种终端120,通过确定单元1201对网络性能和自身内存条件的判断来确定从代理服务器或视频服务器下载切片文件,从而降低了无线网络性能对视频播放性能的影响。
参见图14,其示出了本发明实施例提供的一种代理服务器140,该代理服务器可以包括:接收单元1401,获取单元1402和发送单元1403,其中,
所述接收单元1401,用于接收终端发送的第一业务请求消息,所述第一业务请求消息包括所述终端当前已下载的切片文件信息;
所述获取单元1402,用于根据所述终端当前已下载的切片文件信息获取下一个切片文件在视频服务器上的下载地址;
所述接收单元1401,用于根据所述下一个切片文件在视频服务器上的下载地址下载所述下一个切片文件;
所述发送单元1403,用于向所述终端发送所述下一个切片文件。
示例性的,所述终端当前已下载的切片文件信息包括所述终端当前已下载的切片文件的数据量;
相应的,如图15所示,所述获取单元1402包括:获取模块14021和查找模块14022,其中,
所述获取模块14021用于根据所述终端当前已下载的切片文件的数据量获取所述下一个切片文件的编号,其中,所述下一个切片文件的编号之前的所有切片文件的数据量总和等于所述终端当前已下载的切片文件的数据量;
例如,当下一个切片文件的编号为N+1时,那么,从编号1至编号N的所有切片文件的数据量总和等于所述终端当前已下载的切片文件数据量。因此获取模块14021通过对每个编号的切片文件之前的所有切片文件的数据量总和与所述终端当前已下载的切片文件数据量进行对比,当两者相等时,获取模块14021就获取到下一个切片文件的编号。
所述查找模块14022,用于根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件,得到所述下一个切片文件在视频服务器上的下载地址;
其中,所述索引文件包括所述切片文件编号、所述切片文件数据大小及所述切片文件在所述视频服务器上的下载地址三者之间的映射关系。
具体地,所述查找模块14022用于根据所述下一个切片文件的编号查找所述代理服务器当前已获取的切片文件的索引文件;
当所述查找模块14022确定当前已获取的切片文件的索引文件中不包括所述下一个切片文件的编号时,触发获取模块14021从所述视频服务器获取更新的切片文件的索引文件,并从所述更新的切片文件的索引文件中获取所述下一个切片文件在所述视频服务器上的下载地址,其中,所述更新的切片文件的索引文件包括所述下一个切片文件编号、所述下一个切片文件数据大小以及所述下一个切片文件在所述视频服务器上的下载地址;
当所述查找模块14022确定当前已获取的切片文件的索引文件中包括所述下一个切片文件的编号时,触发获取模块14021从所述当前已获取的切片文件的索引文件获取所述下一个切片文件在所述视频服务器上的下载地址。
还需要说明的是,当终端最初开始播放视频文件时,需要通过代理服务器140进行下载视频文件的首个切片文件,此时,
所述接收单元1401,还用于接收所述终端发送的视频播放请求消息,所述视频播放请求消息包括所述视频服务器的域名地址;
如图15所示,代理服务器140还包括解析单元1404,用于根据所述视频服务器的域名地址进行DNS解析,获取所述视频服务器的IP地址;
所述接收单元1401,还用于根据所述视频服务器的IP地址从所述视频服务器获取首个切片文件;
所述发送单元1403,还用于向所述终端发送所述首个切片文件。
本实施例提供了一种代理服务器,当终端的网络性能和自身内存条件异常时,为终端下发切片文件,从而降低了无线网络性能对视频播放性能的影响。
参见图16,其示出了本发明实施例提供的一种视频文件播放的系统,该系统可以包括:终端120、代理服务器140和视频服务器150,其中,
所述终端120,用于确定下载所述切片文件时的网络性能和/或所述终端120自身的内存状态;
以及当所述网络性能和/或所述终端120的内存状态为异常状态时,向所述代理服务器140发送第一业务请求消息,所述第一业务请求消息包括所述终端120当前已下载的切片文件信息;
以及接收所述代理服务器140下发的下一个切片文件,所述下一个切片文件由所述代理服务器140根据所述终端120当前已下载的切片文件信息获得。
所述代理服务器140,用于接收所述终端120发送的第一业务请求消息,所述第一业务请求消息包括所述终端120当前已下载的切片文件信息;
以及根据所述终端120当前已下载的切片文件信息获取下一个切片文件在所述视频服务器150上的下载地址;
以及根据所述下一个切片文件在视频服务器150上的下载地址下载所述下一个切片文件;
以及向所述终端120发送所述下一个切片文件。
本实施例提供了一种视频文件播放的系统,终端120通过对网络性能和自身内存条件的判断来确定从代理服务器140或视频服务器150下载切片文件,从而降低了无线网络性能对视频播放性能的影响。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。