流媒体传输优化方法及缓存装置与流程

文档序号:14257196阅读:239来源:国知局

本发明实施例涉及影音串流数据的传输优化。



背景技术:

在信息时代,数字流媒体广泛地分布,且可在诸如例如因特网的多种数字通信网络中获得。流媒体播放器接收流传播内容,并将其呈现在客户端的显示器上。自适应流媒体播放器监视客户端状况及传输装置并据此调整流,以提升或降低流媒体的分辨率。

然,为提升流媒体播放的画面分辨率,流媒体播放器可能要求更高分辨率的流媒体数据块,而当前网络状况又无法满足时,会造成客户端的流媒体播放画面不停在低分辨率与高分辨率切换的问题,及播放不流畅的问题。



技术实现要素:

鉴于此,有必要提供一种流媒体传输优化方法及缓存装置,以解决客户端的流媒体播放画面不停在低分辨率与高分辨率切换的问题,及播放不流畅的问题。

本发明实施例提供了一种流媒体传输优化方法,应用于缓存装置中,该缓存装置通过第一网络与至少一个客户端连接,及通过第二网络与至少一个内容提供装置连接。

接收该客户端需要第一分辨率的一个或多个流媒体数据块所对应的一个或多个请求;响应于该一个或多个请求,生成第一预取进程,以从所述内容提供装置中预取第一分辨率的所述一个或多个流媒体数据块给所述客户端;接收客户端需要第二分辨率的第n个流媒体数据块的第n请求;响应于该第n请求:判断所述缓存装置和所述内容提供装置之间的网络状况,是否支持所述缓存装置从所述内容提供装置获取第二分辨率的第n个流媒体数据块;如果判断不支持,则限制与所述客户端之间的传输速度,并继续向所述客户端发送第一分辨率的第n个流媒体数据块。

本发明实施例还提供了一种缓存装置,该缓存装置通过第一网络与至少一个客户端连接,及通过第二网络与至少一个内容提供装置连接。该缓存装置包括接收模块和响应模块。

所述接收模块用于用于接收该客户端需要第一分辨率的一个或多个流媒体数据块所对应的一个或多个请求。所述响应模块响应于该一个或多个请求,生成第一预取进程,以从所述内容提供装置中预取第一分辨率的所述一个或多个流媒体数据块给所述客户端。

所述接收模块还用于接收客户端需要第二分辨率的第n个流媒体数据块的第n请求。所述响应模块还用于响应该第n请求:判断所述缓存装置和所述内容提供装置之间的网络状况,是否支持所述缓存装置从所述内容提供装置获取第二分辨率的第n个流媒体数据块;如果判断不支持,则限制与所述客户端之间的传输速度,并继续向所述客户端发送相应的第一分辨率的第n个流媒体数据块。

本发明实施例提供的流媒体传输优化方法及缓存装置,相比于现有技术,可以当客户端要求更高分辨率的流媒体数据块,而当前网络状况又无法满足时,主动限制缓存装置与客户端之间的传输速度,以引导客户端继续播放原分辨率的流媒体数据块。从而防止了客户端的流媒体播放画面不停在低分辨率与高分辨率切换的问题,以及防止客户端盲目要求提高流媒体分辨率所导致的播放不流畅的问题。

附图说明

图1为本发明实施例之缓存装置的运行环境示意图。

图2为本发明实施例之缓存装置的功能模块示意图。

图3为本发明实施例之流媒体传输优化方法的流程示意图。

图4为本发明另一实施例之流媒体传输优化方法的流程示意图。

主要元件符号说明

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

请参考图1,本发明实施例之缓存装置2的环境示意图。缓存装置2通过第一网络连接一个或多个客户端,如客户端4a-4d。同时,缓存装置2还通过第二网络连接一个或多个内容提供方,如内容提供装置6。在本实施例中,第一网络可以为局域网(localareanetwork,lan),第二网络可以为因特网(internet)或广域网(wideareanetwork,wan)。

客户端4a-4d可以是可以是移动电话、平板个人计算机或机顶盒。该些客户端4a-4d可以采用基于自适应比特率流(adaptivebit-ratestreaming,abr)的流媒体传输技术,根据传输情况动态调整流媒体播放的分辨率。

当某个客户端(如,客户端4a)向内容提供装置6请求一个流媒体文件,如文件名为sample的流媒体文件时,内容提供装置6会回复一个sample.m3u8文件列表给该客户端4a,该sample.m3u8文件列表中含有该sample文件所能提供的几种分辨率。该客户端4a会根据自身设置的策略或网络状况决定根据哪一种分辨率开始获取sample文件,如根据第一分辨率开始获取该sample文件。

为表示清晰,该sample文件分为多个流媒体数据块或片段,第一分辨率的第一个流媒体数据块用a1表示,第二分辨率的第一个流媒体数据块用b1表示,第一分辨率的第二个流媒体数据块用a2表示,第二分辨率的第二个流媒体数据块用b2表示,以此类推。

客户端4a透过缓存装置2从内容提供装置6中获取所需的流媒体数据块。

请参考图2,为本发明实施例之缓存装置的功能模块图。缓存装置2包括缓存控制系统10、存储器20和处理器30。该缓存控制系统10包括接收模块100、响应模块200和预估模块300。所述模块100-300被配置成由一个或多个处理器(本实施例为处理器30)执行,以完成本发明实施例。本发明实施例所称的模块是完成一特定功能的计算机程序段。存储器20用于存储缓存控制系统10的程序代码资料及存储从内容提供装置6中获取的流媒体数据块。

接收模块100接收客户端4a需要第一分辨率的一个或多个流媒体数据块所对应的一个或多个请求,如需要第一分辨率的第一个流媒体数据块a1的第一请求。

响应模块200响应该第一请求,生成第一预取进程,以从内容提供装置6中预取第一分辨率的第一个流媒体数据块a1及其后续流媒体数据块a2、a3、…。在本实施例中,接收模块100在接收到客户端4a需要第一分辨率的第一个流媒体数据块a1的第一请求时,响应模块200除了根据该第一请求从内容提供装置6下载该第一分辨率的第一个流媒体数据块a1外,还会预取其后续流媒体数据块a2、a3、…。当接收模块100接收到客户端4a需要第一分辨率的第二个流媒体数据块a2的第二请求时,则响应模块200可以将该预取的第一分辨率的流媒体数据块a2直接发送给客户端4a。

在一实施例中,接收模块100在接收到客户端4a需要第一分辨率的第一个流媒体数据块a1的第一请求时,响应模块200会先判断缓存装置2中是否预存或预取有该第一分辨率的第一个流媒体数据块a1。如果判断预存或预取有该第一分辨率的第一个流媒体数据块a1,则该响应模块200将该预存或预取的第一个流媒体数据块a1送给客户端4a。如果判断没有预存或预取有该第一分辨率的第一个流媒体数据块a1,则该响应模块200生成所述第一预取进程,以从内容提供装置6中预取该第一分辨率的第一个流媒体数据块a1。

如果缓存装置2和客户端4a之间的网络状况良好,客户端4a本身的系统也比较空闲时,根据abr传输技术,客户端4a可能会要求提升流媒体播放的分辨率,从而要求更高分辨率的流媒体文件,如从第n个流媒体数据块时开始要求获取第二分辨率的第n个流媒体数据块bn及其后续流媒体数据块bn+1、bn+2、…。

当接收模块100接收到客户端4a需要第二分辨率的第n个流媒体数据块bn的第n请求时,响应模块200响应该第n请求,以判断缓存装置2和内容提供装置6之间的网络状况是否支持缓存装置2从内容提供装置6获取第二分辨率的第n个流媒体数据块bn。在本实施例中,网络状况可能受多种因素影响,如缓存装置2和内容提供装置6之间的宽带、缓存装置2的系统运行状态以及内容提供装置6的系统运行状态。

如果判断缓存装置2和内容提供装置6之间的网络状况不支持缓存装置2从内容提供装置6获取第二分辨率的第n个流媒体数据块bn,则响应模块200限制缓存装置2与客户端4a之间的传输速度,以引导客户端4a播放流媒体的清晰度维持在第一分辨率,并继续向客户端4a发送第一分辨率的第n个流媒体数据块an。所谓限制缓存装置2与客户端4a之间的传输速度可以采用多种方式,例如对缓存装置2的对应端口进行设置,重新分配缓存装置2和客户端4a的带宽,降低缓存装置2向客户端4a反馈或提供流媒体数据库的速度(即增加向客户端4a流媒体数据库之间的时间间隔)等等。

如果判断缓存装置2和内容提供装置6之间的网络状况支持缓存装置2从内容提供装置6获取第二分辨率的第n个流媒体数据块bn,则响应模块200将所述第一预取进程切换为第二预取进程,所述第二预取进程用于控制缓存装置2向内容提供装置6预取第二分辨率的第n个流媒体数据块bn及其后续流媒体数据块bn+1、bn+2、…,并将第二分辨率的第n个流媒体数据块bn转发给客户端4a。

在一个实施例中,响应模块200还判断缓存装置2中是否预存或预取有该第二分辨率的第n个流媒体数据块bn。如果判断预存或预取有该第二分辨率的第n个流媒体数据块bn,则响应模块200将该预存或预取的第n个流媒体数据块bn送给客户端4a。

在一个实施例中,缓存装置2还包括预估模块300。该预估模块300侦测缓存装置2与客户端4a之间的网络状况,并依据该侦测结果预估客户端4a向缓存装置2发送需要第二分辨率的第m个流媒体数据块bm的第m请求之概率(在本实施例中,第一分辨率大于第二分辨率,故网络状况越好,概率越大)。如果该概率大于一个预设阀值时,则响应模块200判断缓存装置2和内容提供装置6之间的网络状况是否支持缓存装置2从内容提供装置6同时获取第一分辨率的第m个流媒体数据块am和第二分辨率的第m个流媒体数据块bm。如果支持,则响应模块200同时运作第一预取进程和第二预取进程,第一预取进程用于控制缓存装置2继续从内容提供装置中预取第一分辨率的第m个流媒体数据块am及其后续流媒体数据块am+1、am+2、…,所述第二预取进程用于控制所述缓存装置2从内容提供装置6中预取第二分辨率的第m个媒体数据块bm及其后续流媒体数据块bm+1、bm+2、…。

当接收模块100接收到客户端4a需要第二分辨率的第m个流媒体数据块bm或其后续流媒体数据块bm+1、bm+2、…的请求时,响应模块200会向客户端4a发送该预取的第二分辨率的第m个流流媒体数据块bm或其后续流媒体数据块bm+1、bm+2、…,并停止运作第一预取进程。

请参考图3,本发明实施例之流媒体传输优化方法的流程图。所述流媒体传输优化方法的执行主体可以是图2所示的各个模块组成的缓存装置2,也可以是支持本方法任意其它装置。需要注意的是,本方法实施例中的执行主体并不能用来限制本发明。另外,本方法实施例中的流程图也不用于对执行步骤的顺序进行限定。

缓存装置2通过lan连接一个或多个客户端,如客户端4a-4d。本方法实施例以客户端4a、缓存装置2与内容提供装置6之间的通信交互为例进行说明。但是值得注意的是,该通信架构并不用于限制本发明。

步骤102,缓存装置2接收客户端4a需要第一分辨率的一个或多个流媒体数据块所对应的的一个或多个请求,如第一分辨率的第一个流媒体数据块a1的第一请求。

步骤104,响应于该第一请求,生成第一预取进程,通过该第一预取进程控制缓存装置2从内容提供装置6中预取第一分辨率的第一个流媒体数据块a1及其后续流媒体数据块a2、a3、…。将第一分辨率的第一个流媒体数据块a1发送给客户端4a,并等待接收所述第一请求之后的后续请求,以将第一分辨率的第一个流媒体数据块a1的后续流媒体数据块a2、a3、…发送给客户端4a。

在一个实施例中,缓存装置2响应该第一请求,判断缓存装置2中是否预存或预取有该第一分辨率的第一个流媒体数据块a1。如果判断有,则将该预存或预取的第一个流媒体数据块a1直接送给所述客户端。如果判断没有,则生成并执行第一预取进程。

步骤106,接收到客户端4a需要第二分辨率的第n个流媒体数据块bn的第n请求。

在一个实施例中,缓存装置2在接收到步骤106中的第n请求后,会先判断缓存装置2中是否预存或预取有该第二分辨率的第n个流媒体数据块bn。如果判断有,则将该预存或预取的该第二分辨率的第n个流媒体数据块bn直接送给所述客户端。如果判断没有,则执行步骤108。

步骤108,判断所述缓存装置和所述内容提供装置之间的网络状况是否支持所述缓存装置从所述内容提供装置获取第二分辨率的第n个流媒体数据块bn。如果支持,进入步骤112,如果不支持,进入步骤110。

步骤110,限制与客户端4a之间的传输速度,并向客户端4a发送第一分辨率的第n流媒体数据块an。

步骤112,将第一预取进程切换为第二预取进程,所述第二预取进程用于控制缓存装置2向内容提供装置6预取第二分辨率的第n流媒体数据块bn及其后续流媒体数据块bn+1、bn+2、…。

步骤114,将第二分辨率的第n流媒体数据块bn发送给客户端4a,并等待接收第n请求之后的后续请求,以将第二分辨率的第n流媒体数据块bn的后续流媒体数据块bn+1、bn+2、…发送给客户端4a。

请参考图4,本发明另一实施例之流媒体传输优化方法的流程图。本发明实施例为根据缓存装置2和客户端4a之间的网络状况和缓存装置2和内容提供装置6之间的网络状况,在客户端4a发出提升流媒体播放的分辨率的请求之前,预先从内容提供装置6中获取当下环境相匹配的更高分辨率的流媒体数据块。参照本方法实施例,同样可以在客户端4a发出降低流媒体播放的分辨率的请求之前,预先从内容提供装置6中获取当下环境相匹配的更低分辨率的流媒体数据块。

步骤202,缓存装置2接收客户端4a需要第一分辨率的一个或多个流媒体数据块所对应的的一个或多个请求,如第一分辨率的第一个流媒体数据块a1的第一请求。

步骤204,响应于该第一分辨率,生成第一预取进程,通过该第一预取进程控制缓存装置2从内容提供装置6中预取第一分辨率的第一个流媒体数据块a1及其后续流媒体数据块a2、a3、…。将第一分辨率的第一个流媒体数据块a1发送给客户端4a,并等待接收所述第一请求之后的后续请求,以将第一分辨率的第一个流媒体数据块a1的后续流媒体数据块a2、a3、…发送给客户端4a。

步骤206,侦测缓存装置2与客户端4a之间的网络状况。

步骤208,依据该侦测结果预估客户端4a向缓存装置2发送需要第二分辨率的第m个流媒体数据块的第m请求之概率。如果该概率大于一个预设阀值时,进入步骤210,否则继续执行步骤204中的第一预取进程。

步骤210,判断所述缓存装置2和内容提供装置6之间的网络状况是否支持所述缓存装置从所述内容提供装置同时获取第一分辨率的第m个流媒体数据块am和第二分辨率的第m个流媒体数据块bm。如果支持,进入步骤212,否则继续执行步骤204中的第一预取进程。

步骤212,同时运作第一预取进程和第二预取进程,所述第一预取进程用于控制所述缓存装置继续从所述内容提供装置中预取第一分辨率的第m个流媒体数据块am及其后续流媒体数据块am+1、am+2、…,所述第二预取进程用于控制缓存装置2从内容提供装置6中预取第二分辨率的第m个媒体数据块bm及其后续流媒体数据块bm+1、bm+2、…。

步骤214,判断是否接收到客户端4a需要第二分辨率的第m个流媒体数据块bm或其后续流媒体数据块bm+1、bm+2、…的请求。如果接收到,则进入步骤216,否则继续继续提供第一分辨率的流媒体数据块,及继续执行第一预取进程和第二预取进程。

步骤216,向客户端4a发送相应的第二分辨率的第m个流媒体数据块bm或其后续流媒体数据块bm+1、bm+2、…,并停止运作所述第一预取进程,继续执行第二预取进程。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1