发明内容
本申请所要解决的技术问题是提供一种流媒体内容播放方法,包括:
发送流媒体列表预览请求;
接收web服务器根据所述预览请求返回的流媒体列表预览页面和网络测试程序;
加载所述流媒体列表预览页面以及运行所述网络测试程序,其中,所述运行所述网络测试程序包括测试多个可用的远端服务器至客户端的网络状况,以及确定达到网络状况阈值条件的远端服务器;
针对所述流媒体列表预览页面发送流媒体内容播放请求;
获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址,其中,所述远端服务器选自所述达到网络状况阈值条件的远端服务器;
根据所述远端服务器地址从所述远端服务器获取所述流媒体内容。
优选地,所述确定达到网络状况阈值条件的远端服务器进一步包括所述客户端将所述网络测试的结果发送至web服务器,所述web服务器根据所述网络状况确定达到阈值条件的远端服务器。
优选地,所述获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址进一步包括所述web服务器根据所述流媒体内容播放请求从所述达到网络状况阈值条件的远端服务器中选择其中一个闲置的远端服务器,并将所述闲置的远端服务器地址发送给客户端;
所述根据所述远端服务器地址从所述远端服务器获取所述流媒体内容进一步包括客户端根据所述闲置的远端服务器地址向所述闲置的远端服务器发出获取所述流媒体内容的请求,所述闲置的远端服务器根据所述请求将所述流媒体内容发送至客户端。
优选地,所述网络状况包括网络带宽、网络连通状况、网络连接速度,以及所述多个可用的远端服务器的闲置状况。
优选地,所述测试多个可用的远端服务器至客户端的网络状况进一步包括:
向所述多个可用的远端服务器发送连接请求;
以及统计所述多个可用的远端服务器反馈所述连接请求的响应时间。
优选地,所述测试多个可用的远端服务器至客户端的网络状况进一步包括:
自所述多个可用的远端服务器下载预置文件;
以及统计所述预置文件的下载速度。
优选地,所述接收web服务器根据所述预览请求返回的流媒体列表预览页面和网络测试程序进一步包括web服务器判断所述客户端是否已存在所述网络测试程序,若存在,则只返回流媒体列表预览页面;若不存在,则返回网络测试程序和流媒体列表预览页面。
相应的,本申请还提供了一种流媒体内容播放装置,包括:
预览请求模块,用于发送流媒体列表预览请求;
接收模块,用于接收web服务器根据所述预览请求返回的流媒体列表预览页面和网络测试程序;
加载模块,用于加载所述流媒体列表预览页面以及运行所述网络测试程序,其中,所述运行所述网络测试程序包括测试多个可用的远端服务器至客户端的网络状况,以及确定达到网络状况阈值条件的远端服务器;
播放请求模块,用于针对所述流媒体列表预览页面发送流媒体内容播放请求;
地址获取模块,用于获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址,其中,所述远端服务器选自所述达到网络状况阈值条件的远端服务器;
内容获取模块,用于根据所述远端服务器地址从所述远端服务器获取所述流媒体内容。
另外,本申请还提供了一种一种流媒体内容播放系统,包括客户端、web服务器和远端服务器,其中,
所述客户端包括:预览请求模块,用于发送流媒体列表预览请求;接收模块,用于接收web服务器根据所述预览请求返回的流媒体列表预览页面和网络测试程序;加载模块,用于加载所述流媒体列表预览页面以及运行所述网络测试程序,其中,所述运行所述网络测试程序包括测试多个可用的远端服务器至客户端的网络状况,以及确定达到网络状况阈值条件的远端服务器;播放请求模块,用于针对所述流媒体列表预览页面发送流媒体内容播放请求;地址获取模块,用于获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址,其中,所述远端服务器选自所述达到网络状况阈值条件的远端服务器;内容获取模块,用于根据所述远端服务器地址从所述远端服务器获取所述流媒体内容;
所述web服务器包括:预览请求响应模块,用于根据所述预览请求向所述客户端返回流媒体列表预览页面和网络测试程序;地址发送模块,用于根据所述流媒体内容播放请求向所述客户端返回远端服务器地址;
所述服务器包括:网络测试响应模块,用于响应客户端发出的网络测试请求;内容发送模块,用于根据所述远端服务器地址向所述客户端发送所述流媒体内容。
优选地,所述web服务器还包括判断模块,用于判断所述客户端是否已 存在所述网络测试程序,若存在,则只返回流媒体列表预览页面;若不存在,则返回网络测试程序和流媒体列表预览页面。
与现有技术相比,本申请将测试服务器的接入条件的步骤放在用户预览流媒体列表时进行,在用户思考选择哪个流媒体播放阶段测试任务执行完毕,确定哪个区域的服务器连接到客户端的速度较快。当用户点播某一流媒体内容时,web服务器将当下该区域闲置的服务器地址发送给客户端,客户端根据该地址向服务器发出视频流播放请求,服务器响应该请求,并把视频流发送给客户端。该方法在用户点播流媒体内容之前便完成了网络状况的测试,当用户点播某一流媒体内容时可迅速实现客户端与服务器的连接,这大大缩短了用户点播流媒体内容时等待响应的时间,提升了用户的体验。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请流媒体内容播放方法的实施例1的流程图。
步骤1:发送流媒体列表预览请求。
如图2所示,用户通过浏览器打开流媒体列表预览页面,预览可播放的流媒体内容。打开该页面时,客户端根据网页地址先向web服务器发出获取该页面的请求,web服务器开始执行请求页面的程序文件,获取与该网页地址相应的页面内容,然后将页面内容以html格式发送到浏览器上显示出来。
在本发明一实施例中,服务器分为两种类型:web服务器和远端服务器。
web服务器也称为网页服务器,主要功能是提供网上信息浏览服务。Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求,Web服务器可以响应一个静态页面或图片,进行页面跳转,或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本、servlets、ASP(Active Server Pages)脚本、服务器端JavaScript,或者一些其它的服务器端技术。无论这些脚本的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。Web服务器的代理模型是当一个请求被送到Web服务器里来时,它只单纯的把请求传递给可以很好的处理请求的程序(服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端程序和返回程序所产生的响应的环境,而不会超出职能范围。服务器端程序通常具有事务处理,数据库连接和消息等功能。在本发明一实施例中,web服务器负责控制客户端和远端服务器之间的交互,包括向发出请求的浏览器提供页面内容、远端服务器地址等,并且网络测试的运行结果也都存储于web服务器中。远端服务器负责存储和处理流媒体内容,并根据客户端的请求将流媒体内容传输给客户端。
步骤2:接收web服务器根据所述预览请求返回的流媒体列表预览页面和网络测试程序。
web服务器中存储流媒体列表预览页面的地址与测试程序数据包的映射关系,当客户端根据流媒体列表预览页面地址请求流媒体列表预览页面内容时,web服务器便调用与该地址具有映射关系的测试程序数据包,并把预览页面内容连同测试程序发送给客户端,客户端自动安装并运行该测试程序。
步骤3:加载所述流媒体列表预览页面以及运行所述网络测试程序,其中,所述运行所述网络测试程序包括测试多个可用的远端服务器至客户端的网络状况,以及确定达到网络状况阈值条件的远端服务器。
客户端加载流媒体列表预览页面的同时运行网络测试程序。网络测试程序的测试客户端至所述多个可用的远端服务器的网络带宽、网络连通状况、网络连接速度,以及所述多个可用的远端服务器的闲置状况。
“网络带宽”是指网络数据传输率,是以“字节/秒”为单位,网络带宽也可以认为是网速(流量),两者之间的关系如下:
带宽/8=流量,
即1M/8=1Mps/8=1024Kps/8=128k/s。
“网络连通状况”是指客户端到某一服务器是否连通,若连通,则可以从该服务器下载数据,若不连通,则不能从该服务器下载数据。
“网络连接速度”是指客户端连接到某一服务器的实时速度,若网络节点多,即从客户端到服务器设置的路由器、交换机及数据转换设备较多,则进行数据转换耗费的时间就长,网络连接速度便慢,若网络节点少,则进行数据转换耗费的时间短,网络连接速度便快。
“所述多个可用的远端服务器的闲置状况”是指某一服务器是闲置还是被占用,若闲置,则可使用,若被占用,则不能使用。
测试程序所使用的方法包括自所述多个可用的远端服务器下载预置文件;以及统计所述预置文件的下载速度。
该方法是在每个服务器中预置一专用于测试的文件,当测试程序启动时,服务器将该文件发送至客户端,则预置文件的下载速度为:
预置文件的下载速度=预置文件的大小/下载时间。
预置文件的下载速度就是网速,该网速为下行网速。
测试程序所使用的方法还包括向所述多个可用的远端服务器发送连接请求;以及统计所述多个可用的远端服务器反馈所述连接请求的响应时间。
该方法是通过使用ping(因特网包探索器)程序测试网络连通状况和网络连接速度。ping也叫时延,是tcp/ip协议的一部分,ping发送一个ICMP(Internet Control Messages Protocol,即因特网信报控制协议)请求数据包,回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。其应用格式为:ping+IP地址。该命令还可以加许多参数使用,在本发明一实施例中,ping命令的格式为ping+网站域名。
Ping程序的运行结果包括响应时间,若运行结果包括响应时间,则说明客户端与服务器能够连通,并且响应时间越短,说明客户端与服务器的连接速度越快;若运行结果没有响应时间,如运行结果为“Request timed out”, 则说明客户端与服务器不能连接,此时,该服务器不能使用。
上述两种测试方法可以单独使用也可以同时使用。
在本发明一实施例中,所述确定达到网络状况阈值条件的远端服务器进一步包括所述客户端将所述网络测试的结果发送至web服务器,所述web服务器根据所述网络状况确定达到阈值条件的远端服务器。
通过运行测试程序获得的测试结果是由web服务器控制的,具体地,自所述多个可用的远端服务器下载预置文件;以及统计所述预置文件的下载速度得到的所有服务器到客户端的网络带宽数据发送至web服务器。向所述多个可用的远端服务器发送连接请求;以及统计所述多个可用的远端服务器反馈所述连接请求的响应时间方法中获取的响应时间也发送至web服务器。另外,服务器反馈的闲置状况也发送web服务器。
在本发明一实施例中,web服务器根据测试结果确定出哪个区域的远端服务器到达客户端的网速最快以及该区域中哪些服务器是闲置的,哪些服务器是被占用的。
步骤4:针对所述流媒体列表预览页面发送流媒体内容播放请求。
如图3所示,当用户在客户端的流媒体列表预览页面中点播第一个流媒体内容时,客户端向web服务器发出获取该流媒体内容的请求。
步骤5:获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址,其中,所述远端服务器选自所述达到网络状况阈值条件的远端服务器。
在本发明一实施例中,所述web服务器根据所述流媒体内容播放请求从所述达到网络状况阈值条件的远端服务器中选择其中一个闲置的远端服务器,并将所述闲置的远端服务器地址发送给客户端。
当客户端向web服务器发出获取该流媒体内容的请求时,web服务器根据之前判断出的某一个区域的远端服务器到达客户端的网速最快的测试结果,从该区域中挑选闲置的远端服务器,并把该远端服务器的地址发送给客户端。客户端根据该远端服务器地址向该远端服务器发出获取该流媒体内容的请求,所述服务器根据所述请求将所述流媒体内容发送至客户端。
步骤6:根据所述远端服务器地址从所述远端服务器获取所述流媒体内 容。
所述根据所述远端服务器地址从所述远端服务器获取所述流媒体内容进一步包括客户端根据所述闲置的远端服务器地址向所述闲置的远端服务器发出获取所述流媒体内容的请求,所述闲置的远端服务器根据所述请求将所述流媒体内容发送至客户端。
web服务器根据所述网络状况将可用的远端服务器地址发送给客户端,客户端根据所述地址向所述服务器发出获取所述流媒体内容的请求,所述服务器根据所述请求将所述流媒体内容发送至客户端。客户端便呈现该流媒体内容播放页面(如图3所示)。
参照图4,示出了本申请流媒体内容播放方法的实施例2的流程图。
该实施例在实施例1的基础上增加了一个判断步骤,即web服务器在接收到客户端发送的流媒体列表预览请求后,判断所述客户端是否已存在所述网络测试程序,若存在,则只返回流媒体列表预览页面;若不存在,则返回网络测试程序和流媒体列表预览页面。
web服务器通过调用Java script编写的Active Xobject方法检测所述客户端是否已存在所述网络测试程序,若检测到客户端已存在网络测试程序,则web服务器只返回流媒体列表预览页面;若检测到客户端不存在网络测试程序,则既返回网络测试程序,又返回流媒体列表预览页面。
其他步骤与实施例1相同,在此不再赘述。
参照图5,示出了本申请流媒体内容播放装置实施例1的示意图。
该流媒体内容播放装置500包括:
预览请求模块501,用于发送流媒体列表预览请求;
接收模块502,用于接收web服务器根据所述预览请求返回的流媒体列表预览页面和网络测试程序;
加载模块503,用于加载所述流媒体列表预览页面以及运行所述网络测试程序,其中,所述运行所述网络测试程序包括测试多个可用的远端服务器至客户端的网络状况,以及确定达到网络状况阈值条件的远端服务器;
播放请求模块504,用于针对所述流媒体列表预览页面发送流媒体内容播放请求;
地址获取模块505,用于获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址,其中,所述远端服务器选自所述达到网络状况阈值条件的远端服务器;
内容获取模块506,用于根据所述远端服务器地址从所述远端服务器获取所述流媒体内容。
参照图6,示出了本申请流媒体内容播放装置实施例2的示意图。
该流媒体内容播放装置600包括:
预览请求模块601,用于发送流媒体列表预览请求;
接收模块602,用于接收web服务器根据所述预览请求返回的流媒体列表预览页面和网络测试程序;
加载模块603,用于加载所述流媒体列表预览页面以及运行所述网络测试程序,其中,所述运行所述网络测试程序包括测试多个可用的远端服务器至客户端的网络状况,以及确定达到网络状况阈值条件的远端服务器;
播放请求模块604,用于针对所述流媒体列表预览页面发送流媒体内容播放请求;
地址获取模块605,用于获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址,其中,所述远端服务器选自所述达到网络状况阈值条件的远端服务器;
内容获取模块606,用于根据所述远端服务器地址从所述远端服务器获取所述流媒体内容。
其中,所述加载模块603进一步包括判断单元607,用于判断所述客户端是否已存在所述网络测试程序,若存在,则只返回流媒体列表预览页面;若不存在,则返回网络测试程序和流媒体列表预览页面。
参照图7,示出了本申请实施例的流媒体内容播放系统实施例1的示意图。
该流媒体内容播放系统包括客户端710、web服务器720和远端服务器730,其中,
所述客户端710包括:预览请求模块711,用于发送流媒体列表预览请求;接收模块712,用于接收web服务器根据所述预览请求返回的流媒体列 表预览页面和网络测试程序;加载模块713,用于加载所述流媒体列表预览页面以及运行所述网络测试程序,其中,所述运行所述网络测试程序包括测试多个可用的远端服务器至客户端的网络状况,以及确定达到网络状况阈值条件的远端服务器;播放请求模块714,用于针对所述流媒体列表预览页面发送流媒体内容播放请求;地址获取模块715,用于获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址,其中,所述远端服务器选自所述达到网络状况阈值条件的远端服务器;内容获取模块716,用于根据所述远端服务器地址从所述远端服务器获取所述流媒体内容;
所述web服务器720包括:预览请求响应模块721,用于根据所述预览请求向所述客户端返回流媒体列表预览页面和网络测试程序;地址发送模块722,用于根据所述流媒体内容播放请求向所述客户端返回远端服务器地址;
所述远端服务器730包括:网络测试响应模块731,用于响应客户端发出的网络测试请求;内容发送模块732,用于根据所述远端服务器地址向所述客户端发送所述流媒体内容。
参照图8,示出了本申请实施例的流媒体内容播放系统实施例2的示意图。
所述客户端810包括:预览请求模块811,用于发送流媒体列表预览请求;接收模块812,用于接收web服务器根据所述预览请求返回的流媒体列表预览页面和网络测试程序;加载模块813,用于加载所述流媒体列表预览页面以及运行所述网络测试程序,其中,所述运行所述网络测试程序包括测试多个可用的远端服务器至客户端的网络状况,以及确定达到网络状况阈值条件的远端服务器;播放请求模块814,用于针对所述流媒体列表预览页面发送流媒体内容播放请求;地址获取模块815,用于获取所述web服务器根据所述流媒体内容播放请求返回的远端服务器地址,其中,所述远端服务器选自所述达到网络状况阈值条件的远端服务器;内容获取模块816,用于根据所述远端服务器地址从所述远端服务器获取所述流媒体内容;
所述web服务器820包括:预览请求响应模块821,用于根据所述预览请求向所述客户端返回流媒体列表预览页面和网络测试程序;地址发送模块822,用于根据所述流媒体内容播放请求向所述客户端返回远端服务器地址; 判断模块823,用于判断所述客户端是否已存在所述网络测试程序,若存在,则只返回流媒体列表预览页面;若不存在,则返回网络测试程序和流媒体列表预览页面;
所述远端服务器830包括:网络测试响应模块831,用于响应客户端发出的网络测试请求;内容发送模块832,用于根据所述远端服务器地址向所述客户端发送所述流媒体内容。
对于装置和系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
以上对本申请所提供的一种流媒体内容播放方法、装置及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。