一种动态带宽适配的方法

文档序号:7956317阅读:171来源:国知局
专利名称:一种动态带宽适配的方法
技术领域
本发明涉及移动通讯流媒体业务领域,尤其涉及一种动态带宽适配的方法。
背景技术
流媒体业务是一种采用“流”方式传输媒体内容的应用,随着宽带网络的建设,逐渐被大规模使用。流媒体业务的突出特点是实时性,在流媒体会话建立初期,进行短暂的媒体内容缓冲,缓冲的主要原因是用于消除网络波动造成的对媒体播放效果的影响。在后续网络状况良好的情况下,流媒体播放不会出现中断,直到播放结束。但实际的网络情况下,网络带宽变化十分剧烈,有可能会成倍的降低,短时间的媒体内容缓冲并不能消除网络带宽波动对媒体播放效果的影响。如果增加初始缓冲时间,用户需要经过较长时间的等待,导致用户产生厌烦情绪。
相比流媒体业务,下载业务是将初始缓冲时间极大化的例子,下载业务首先将媒体内容完全下载到播放终端,然后才进行播放。流媒体业务的优势在于不需要将媒体完全下载到本地即可进行播放,提高用户使用的及时性。但是也增强了流媒体业务对网络带宽的依赖性。如果网络带宽不能满足编码带宽要求,则会出现媒体播放延迟的现象,甚至丢包现象。出现丢包等情况,则会影响到播放的内容,如图像变形,马赛克等。
通常根据流媒体业务的基础网络可分成有线网络的流媒体业务以及无线网络的流媒体业务。由于网络流量的增加,网络带宽成为竞争资源。无论有线网络还是无线网络,对流媒体业务而言都存在网络带宽适配的问题,相对有线网络而言,由于无线网络的环境更加恶劣,网络带宽变化更剧烈,因此,更需要网络带宽适配技术的应用。网络带宽适配也就是,根据网络的实际情况,选择合适编码带宽的媒体内容向播放终端发送。保持媒体内容发送的实时性。流媒体业务分成点播和直播两种基本业务,点播是指手机终端通过流协议播放指定的媒体文件的业务,直播是指手机终端通过流协议播放实时媒体流的业务。在媒体传输上两者没有差别,只是直播业务用户无法自主选择播放进度。
在网络带宽适配问题上,有很多的研究,也有一些相关的专利文档。从专利情况看,大致有两种方式来实现网络带宽适配方法一,流服务器与播放终端相互协商带宽,由服务器选择一种匹配的编码媒体内容向播放终端发送;方法二,流服务器根据播放终端返回的RTCP(实时传输控制协议)包消息判断网络带宽变化,并选择合适的编码媒体内容发送。
方法一的实现需要流服务器与播放终端之间采用相同的协商协议,同一厂家的流服务器与播放终端之间可采用相同的协商协议,但是不同厂家的流服务器与播放终端之间则无法进行这样的带宽协商。因此,方法一的实用性和通用性较差。
方法二依据现有大多数播放终端都返回RTCP包的标准实现,单纯依靠返回的RTCP进行带宽适配,只是简单的从RTCP包的丢失情况,RTCP包中报告的RTP(实时传输协议)包丢失情况,以及传输延迟情况,判断是否进行带宽适配。不能明确媒体内容的编码带宽(下面简称媒体带宽)调整的幅度,必然会导致由于带宽调整不合适而不能保证用户播放流媒体的效果。而且对于RTP包丢失程度以及传输延迟程度达到何种程度才开始进行媒体带宽调整没有明确的说法,只能依据所谓的经验值进行,而且网络情况变化多样,经验值很难起到好的作用。因此,第二种方法的可实施性差,调整效率低,而且很难提前进行媒体带宽调整,避免用户的播放效果受到影响。

发明内容
本发明要解决的技术问题是提供一种动态带宽适配的方法,可以更好的调整媒体带宽,保证用户播放流媒体的效果。
为了解决上述技术问题,本发明提供了一种动态带宽适配的方法,应用于具有多种不同编码带宽的媒体内容的流媒体系统,在终端与流媒体系统建立流协议会话后,流媒体系统在收到实时传输控制协议RTCP包时,按以下步骤进行处理(a)估算出传输带宽并记录,再对之前若干次估算传输带宽取平均值作为目标带宽;(b)判断是否所述RTCP包报告当前丢包率超过限度,如果是,根据所述目标带宽选择一个编码带宽与其最接近的媒体内容发送。
进一步地,上述方法还可具有以下特点所述步骤(a)中,在终端与流媒体系统建立流协议会话后,保存初次选中的媒体带宽大小,并以此带宽为最高带宽,所述步骤(b)中,如所述RTCP包当前丢包率没有超过限度,再判断当前传输带宽与目标带宽是否基本一致且媒体带宽还可增加,如是,选择上一级编码带宽的媒体内容发送,结束此次处理。
进一步地,上述方法还可具有以下特点所述步骤(b)中,如所述RTCP包当前丢包率没有超过限度,再判断当前传输带宽与目标带宽是否基本一致,如果是且媒体带宽还可以增加,选择上一级编码带宽的媒体内容发送;否则,所述目标带宽与当前发送的媒体带宽相差较大,重新选择待发送的媒体带宽,然后再次判断所述目标带宽与当前发送的媒体带宽是否基本一致。
进一步地,上述方法还可具有以下特点所述步骤(a)中,流媒体系统只有在收到合法的RTCP包后,才估算传输带宽并记录。
进一步地,上述方法还可具有以下特点所述步骤(a)中,如果流媒体系统在RTCP包最长时间间隔内收到RTCP包,所述RTCP包中包含RR包,且所述RTCP包对应的RTP包对应于正在传送的媒体的部分超过设定门限,则所述RTCP包是合法的RTCP包。
进一步地,上述方法还可具有以下特点所述步骤(a)中,流媒体系统在收到RTCP包时,设置接收下一个RTCP包的最长间隔时间,如果下一个RTCP包在所述最长间隔时间内返回且包含RR包,则估算传输带宽并记录;否则,判断是否存在低一级编码带宽的媒体内容,如果有,选择低一级编码带宽的媒体内容进行发送,此次处理结束;如果没有低一级编码带宽的媒体内容,停止整个媒体内容发送。
进一步地,上述方法还可具有以下特点所述步骤(a)中,如果下一个RTCP包在所述最长间隔时间内返回且包含RR包,还要判断所述RTCP包对应的RTP包对应于正在传送的媒体的部分是否超过设定门限,如果是,再估算传输带宽并记录;否则直接结束。
进一步地,上述方法还可具有以下特点所述步骤(a)中,流媒体系统在收到RTCP包时,根据计算出的平均每个RTP包的大小和流媒体播放终端实际接收到的RTP包数目,得到流媒体播放终端接收到的字节数;再依据RTCP包的时间间隔和流媒体终端接收到的字节数,估算传输带宽并记录。
进一步地,上述方法还可具有以下特点所述步骤(a)中,流服务系统在接收到一个RTCP包时,记录当时发送的RTP包序号、已发送的字节数以及当时时间戳,通过前后两次RTCP包对应记录的RTP包序号、已发送字节数信息之间的差值得到平均每个RTP包的大小。
进一步地,上述方法还可具有以下特点所述步骤(b)中,如果所述RTCP包报告有丢包情况且当前丢包率超过限度,先选取与所述目标带宽最接近的用户所使用的数据链路带宽作为校正目标带宽,再从不同编码带宽的媒体中选取与所述校正目标带宽最接近的媒体内容发送。
综上所述,本发明通过综合处理返回的RTCP包以及发送的RTP包,可快速定位需要降低到多大的带宽,避免无目的的调整媒体带宽,同时还能提前调整带宽,避免编码带宽过高的持续时间太长而出现丢包。在网络带宽波动的情况下,保证了媒体播放效果。本发明所提出实现动态带宽适配的方法与以前的实现方法相比,具有带宽调整效率高且可实施性强特点,同时还可提前进行媒体带宽调整,而不需要等到出现丢包才进行媒体带宽调整,保证了用户的流媒体播放效果。


图1是本发明实施例动态带宽适配的应用环境;图2是本发明实施例中流媒体系统每次接收到终端返回的RTCP包后进行的动态带宽适配处理流程。
具体实施例方式
下面结合实施例和附图详细描述本发明方法,本发明方法中流媒体播放终端依据RFC1889的规定向流服务器发送RTCP包。
本实施例采用无线网络环境下的流媒体应用为例,整个带宽适配的应用环境成如图1所示。流媒体系统由带宽估计模块,RTCP包接收模块,RTP包发送模块,带宽调整判断模块,媒体选择模块以及不同带宽的媒体内容组成,这里仅列出与本发明描述的方法相关的模块。其中RTCP接收模块处理接收的RTCP包,判断RTCP的合法性以及超时情况。
带宽估计模块主要通过收集的RTCP包信息,估算出传输带宽以及需要切换的带宽。
带宽调整判断模块通过判断是否达到带宽调整条件,并确定目标调整带宽大小。
媒体选择模块根据目标调整带宽选择带宽接近的媒体内容。其中编码速率1、编码速率2、编码速率3表示不同编码带宽的媒体内容,媒体选择模块需要能保证内容相同的情况下,在三种带宽下进行切换。对于点播业务而言,这三个带宽的内容表示已预先编码好的不同带宽的媒体内容,可放在一文件中,也可作为三个文件分别存放。对于直播业务而言,这是三个不同带宽的实时媒体流。
手机终端通过无线网络的移动网关与流媒体系统建立数据链接,正常情况下,手机终端采用RTSP(实时传输会话协议)协议会话与流媒体系统建立流媒体控制通道,手机终端请求媒体播放后,流媒体系统将媒体流采用RTP包向手机终端发送。手机终端首先进行一段时间的缓冲,然后开始媒体播放。在媒体播放过程中,手机终端按照一定的规则向流媒体系统发送RTCPRR(receiver report,即接收者报告)包,其中包含有累计丢包数,接收包的最大序列号,当前丢包率参数,延迟参数。当传输带宽发生变化时,流媒体系统选择合适带宽的媒体内容发送到手机终端,保证用户媒体播放的感受。下面对实现方法进行详细描述。
手机终端与流媒体系统建立流协议会话后,选定初始的媒体带宽大小并记录,然后选择相应编码带宽的媒体内容进行发送,初始选中的编码带宽为此次传输过程的最高带宽,此后在加大媒体带宽时以此值为上限;在发送过程中,流媒体系统同时接收终端返回的RTCP包,每次接收到终端返回的RTCP包后进行以下动态带宽适配的处理过程,如图2所示,包括以下步骤步骤110,流媒体系统根据收到的RTCP包计算出接收下一个RTCP包的最长时间间隔并设置计时器,如果此时还没有收到RTCP包,可以按经验值来设定该最长时间间隔;本实施例中,当流服务系统的RTCP接收模块接收到一个RTCP RR包时,记录其到达时间T,累计丢包数目loss,接收包的最大序号RtcpSequ,当前丢包率参数,以及延迟参数,采用RFC1889规定的RTCP间隔计算方法计算出RTCP RR包时间间隔。在本实施例中,将RTCP包最长时间间隔设定为计算出的上述RTCP RR包时间间隔的2倍值。在另一个实施例中,上述RTCP包最长时间间隔可以直接采用测试经验值。
步骤120,流媒体系统判断该RTCP包是否是在接收上一个RTCP包时设定的RTCP包最长时间间隔内收到的,如果是,进行步骤140;否则RTCP包接收超时,认为RTCP包丢失,网络情况很差,需要调整被传输的媒体带宽,进行步骤130;刚开始发送时,可以根据经验值设置一个初始的RTCP包最长时间间隔,用该时间间隔来判断是否超时。
步骤130,流媒体系统判断是否存在低一级编码带宽的媒体内容,如果有,选择低一级编码带宽的媒体内容进行发送,此次处理结束;否则,停止媒体内容发送,结束;步骤140,流媒体系统判断接收到的RTCP包是否包含RR包,如果是,进行步骤150,否则,表示完全丢包发生,进行步骤130;步骤150,判断接收到的RTCP RR包是否属于当前发送带宽发送的包,如果是,进行步骤160,否则此次处理结束;需要每次切换媒体带宽时,流媒体服务器媒体发送模块记录下初始的RTP包序号值,用于判断RTCP包中统计的接收包是否属于当前带宽,如果80%以上的接收包为当前带宽发送的包,则认为此RTCP包为有效包,否则认为是无效RTCP包,不再进行后续的动态带宽适配处理。
步骤160,根据对该RTCP包和上一次RTCP包的记录计算该段时间内发送的每个RTP包的平均大小;流服务系统每接收到一个RTCP包,就记录当时发送的RTP包序号、已发送的字节数以及当时时间戳,在收到下一个RTCP包时,同样记录当时发送的RTP包序号、已发送字节数以及当时时间戳,通过前后两次RTCP包对应记录的RTP包序号、已发送字节数信息之间的差值可得到平均每个RTP包的大小。
步骤170,通过相邻两个RTCP包的最高序列号的差值,累积丢包数差值得到流媒体播放终端实际接收到的RTP包数目,与平均每个包的大小结合,得到流媒体播放终端接收到的字节数;步骤180,依据接收该RTCP包和上一个RTCP包的实际时间间隔和流媒体终端接收到的字节数,估算出传输带宽并记录;从流服务器所记录的连续两个RTCP包所对应的时间戳,计算出RTCP包的时间间隔。
步骤190,对前几次的估算带宽取平均值作为目标带宽,本例中采用前两次,总共三次估算值的平均值;步骤200,判断是否RTCP包报告有丢包情况且当前丢包率超过限度,如果是,表示需要调整被发送的媒体带宽,进行步骤210,否则进行步骤230;上述丢包率是根据RTCP RR包中的fraction lost参数来判断的,本实施例中,上述丢包率超过限度指丢包率参数大于5,在具体实施中,可根据实际情况选择其他数值,范围可以是5到255之间。
步骤210,根据用户所使用的数据链路带宽和上述目标带宽,得到校正的目标带宽;由于在CDMA无线环境下,用户所使用的数据链路带宽是9.6Kbps的倍数,对于其它制式网络,可采用其他的值来代替9.6Kbps。可取一个与目标带宽最接近的9.6Kbps倍数的值作为校正目标带宽。
步骤220,从不同编码带宽的媒体中选取与校正目标带宽最接近的媒体内容作为进行发送,也就是编码带宽与此校正目标带宽之差绝对值最小的媒体内容,完成调整媒体带宽的处理后,此次处理结束;在进行媒体编码时,也需要针对通常的带宽情况进行编码,便于进行上述选择。
步骤230,判断上述目标带宽与当前发送的媒体带宽是否基本一致,如果是,进行步骤240;否则上述目标带宽与当前发送的媒体带宽相差较大,需要重新选择待发送的媒体带宽,进行步骤210;本实施例中采用如下方式判断目标带宽与当前发送的媒体带宽是否相差太大在现有的传输带宽下,如果一秒内的媒体数据在流媒体终端的缓冲区时间内不能传送到流媒体播放终端,则认为目标带宽与媒体带宽相差太大。流媒体终端的缓冲区时间可设为2s。
步骤240,判断是否可以增加带宽,如果是,将媒体带宽调整到上一级的媒体带宽,此次处理结束;否则不增加媒体带宽,此次处理结束。
本实施例中,是通过判断现有带宽是否小于初始会话时所用的带宽来判断是否可以增加带宽的。
在本发明的另一实施例中,RTCP包接收模块每次接收到返回的RTCP包时,先判断接收到的RTCP RR包是否属于当前发送带宽发送的包,如果是,再计算并设置下一个RTCP包的最大间隔时间,进行后面的流程;否则直接丢弃该包,不做任何处理。
以上仅是本发明的较佳实例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改,等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种动态带宽适配的方法,应用于具有多种不同编码带宽的媒体内容的流媒体系统,在终端与流媒体系统建立流协议会话后,流媒体系统在收到实时传输控制协议RTCP包时,按以下步骤进行处理(a)估算出传输带宽并记录,再对之前若干次估算传输带宽取平均值作为目标带宽;(b)判断是否所述RTCP包报告当前丢包率超过限度,如果是,根据所述目标带宽选择一个编码带宽与其最接近的媒体内容发送。
2.如权利要求1所述的方法,其特征在于,所述步骤(a)中,在终端与流媒体系统建立流协议会话后,保存初次选中的媒体带宽大小,并以此带宽为最高带宽,所述步骤(b)中,如所述RTCP包当前丢包率没有超过限度,再判断当前传输带宽与目标带宽是否基本一致且媒体带宽还可增加,如是,选择上一级编码带宽的媒体内容发送,结束此次处理。
3.如权利要求1或2所述的方法,其特征在于,所述步骤(b)中,如所述RTCP包当前丢包率没有超过限度,再判断当前传输带宽与目标带宽是否基本一致,如果是且媒体带宽还可以增加,选择上一级编码带宽的媒体内容发送;否则,所述目标带宽与当前发送的媒体带宽相差较大,重新选择待发送的媒体带宽,然后再次判断所述目标带宽与当前发送的媒体带宽是否基本一致。
4.如权利要求1所述的方法,其特征在于,所述步骤(a)中,流媒体系统只有在收到合法的RTCP包后,才估算传输带宽并记录。
5.如权利要求4所述的方法,其特征在于,所述步骤(a)中,如果流媒体系统在RTCP包最长时间间隔内收到RTCP包,所述RTCP包中包含RR包,且所述RTCP包对应的RTP包对应于正在传送的媒体的部分超过设定门限,则所述RTCP包是合法的RTCP包。
6.如权利要求1所述的方法,其特征在于,所述步骤(a)中,流媒体系统在收到RTCP包时,设置接收下一个RTCP包的最长间隔时间,如果下一个RTCP包在所述最长间隔时间内返回且包含RR包,则估算传输带宽并记录;否则,判断是否存在低一级编码带宽的媒体内容,如果有,选择低一级编码带宽的媒体内容进行发送,此次处理结束;如果没有低一级编码带宽的媒体内容,停止整个媒体内容发送。
7.如权利要求5所述的方法,其特征在于,所述步骤(a)中,如果下一个RTCP包在所述最长间隔时间内返回且包含RR包,还要判断所述RTCP包对应的RTP包对应于正在传送的媒体的部分是否超过设定门限,如果是,再估算传输带宽并记录;否则直接结束。
8.如权利要求1所述的方法,其特征在于,所述步骤(a)中,流媒体系统在收到RTCP包时,根据计算出的平均每个RTP包的大小和流媒体播放终端实际接收到的RTP包数目,得到流媒体播放终端接收到的字节数;再依据RTCP包的时间间隔和流媒体终端接收到的字节数,估算传输带宽并记录。
9.如权利要求1或7所述的方法,其特征在于,所述步骤(a)中,流服务系统在接收到一个RTCP包时,记录当时发送的RTP包序号、已发送的字节数以及当时时间戳,通过前后两次RTCP包对应记录的RTP包序号、已发送字节数信息之间的差值得到平均每个RTP包的大小。
10.如权利要求1所述的方法,其特征在于,所述步骤(b)中,如果所述RTCP包报告有丢包情况且当前丢包率超过限度,先选取与所述目标带宽最接近的用户所使用的数据链路带宽作为校正目标带宽,再从不同编码带宽的媒体中选取与所述校正目标带宽最接近的媒体内容发送。
全文摘要
本发明公开一种动态带宽适配的方法,应用于具有多种不同编码带宽的媒体内容的流媒体系统,在终端与流媒体系统建立流协议会话后,流媒体系统在收到实时传输控制协议RTCP包时,按以下步骤进行处理估算出传输带宽并记录,再对之前若干次估算传输带宽取平均值作为目标带宽;判断是否所述RTCP包报告当前丢包率超过限度,如果是,根据所述目标带宽选择一个编码带宽与其最接近的媒体内容发送。采用本发明方法,可以更好的调整媒体带宽,保证用户播放流媒体的效果。
文档编号H04L29/06GK101030924SQ200610057890
公开日2007年9月5日 申请日期2006年3月3日 优先权日2006年3月3日
发明者李凤军 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1