本发明涉及网络通信技术领域,具体而言,涉及一种自适应码率调整方法及装置。
背景技术:
现有视频终端之间或视频终端与网关设备之间进行媒体流传输时,由于信道不稳定导致的信道带宽不停变化,经常致使视频出现马赛克、音频出现噪声等情况发生。针对该种情况,目前只能通过网络监测设备对网络带宽的变化进行实时监测,当出现某一路媒体流传输的带宽不足时,网络监测设备进行预警,提醒相关人员手动找到其他信道占用带宽过大的设备并在设备配置页面上修改编码输出系统码率的方式来适应当前带宽变窄的变化。这种解决方式,需要相关人员长时间在网络监测设备前值守,带来不必要的人力损耗同时也无法及时响应解决带宽不足而引入丢包所导致的用户体验差的问题。
技术实现要素:
有鉴于此,本发明的目的在于提供一种自适应码率调整方法及装置,以改善上述问题。
本发明实施例提供一种自适应码率调整方法,应用于基于会话初始协议的通信系统中的接收端,该方法包括:
响应码率调整请求,计算出适应于系统当前媒体流传输的新的带宽参数,其中,所述带宽参数包括视频带宽和音频带宽;
通过获得的所述新的带宽参数,确定相应的码率参数,该码率参数包括视频码率及音频码率;
根据所述码率参数构建新的会话描述协议,向发送端重新发起包括该新的会话描述协议的建立会话请求,以使所述发送端在该会话确认建立后根据所述新的会话描述协议对媒体信息进行更新,所述媒体信息包括视频输出码率和音频输出码率。
本发明另一实施例提供一种自适应码率调整方法,应用于基于会话初始协议的通信系统中的发送端,该方法包括:
获得接收端重新发起的包括新的会话描述协议的建立会话请求,其中,所述新的会话描述协议由所述接收端根据计算出的适应于系统当前媒体流传输的新的视频带宽和音频带宽而确定的码率参数构建而成,该码率参数包括音频码率及视频码率;
解析所述新的会话描述协议获取所述码率参数;
根据解析后获取的所述码率参数对媒体信息进行更新,所述媒体信息包括视频输出码率和音频输出码率。
本发明另一实施例提供一种自适应码率调整装置,运用于基于会话初始协议的通信系统中的接收端,该装置包括:
带宽计算模块,用于响应码率调整请求,计算出适应于系统当前媒体流传输的新的带宽参数,其中,所述带宽参数包括视频带宽和音频带宽;
码率确定模块,用于通过获得的所述新的带宽参数,确定相应的码率参数,该码率参数包括视频码率及音频码率;及
请求发起模块,用于根据所述码率参数构建新的会话描述协议,向发送端重新发起包括该新的会话描述协议的建立会话请求,以使所述发送端在该会话确认建立后根据所述新的会话描述协议对媒体信息进行更新,所述媒体信息包括视频输出码率和音频输出码率。
本发明另一实施例提供一种自适应码率调整装置,运用于基于会话初始协议的通信系统中的发送端,该装置包括:
请求接收模块,用于获得接收端重新发起的包括新的会话描述协议的建立会话请求,其中,所述新的会话描述协议由所述接收端根据计算出的适应于系统当前媒体流传输的新的视频带宽和音频带宽而确定的码率参数构建而成,该码率参数包括音频码率及视频码率;
协议解析模块,用于解析所述新的会话描述协议获取所述码率参数;及
媒体信息更新模块,用于根据解析后获取的所述码率参数对媒体信息进行更新,所述媒体信息包括视频输出码率和音频输出码率。
本发明实施例提供的自适应码率调整方法及装置,能够在系统带宽不足导致出现丢包时,及时地自适应调整系统的输出码率,保证媒体流的正常传输,无需人工值守,减少了不必要的人力、物力成本,改善了系统应对信道带宽不停变化的能力,有效提升用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种自适应码率调整方法的应用场景示意图;
图2A为图1中所示的应用场景的一种具体示例图;
图2B为图1中所示的应用场景的另一种具体示例图;
图3为本发明实施例提供的图1中所示的接收端的方框示意图;
图4为本发明实施例提供的图1中所示的发送端的方框示意图;
图5为本发明实施例提供的应用于接收端的自适应码率调整方法的流程图;
图6为本发明实施例提供的接收端中媒体处理层的具体处理流程示意图;
图7为本发明实施例提供的存储于接收端的参数表;
图8为本发明实施例的应用于发送端的自适应码率调整方法的流程图;
图9为本发明实施例的另一种应用于接收端的自适应码率调整方法的流程图;
图10A为本发明实施例的一种接收端与发送端之间基于SIP协议进行自适应码率调整的交互过程示意图;
图10B为本发明实施例的另一种接收端与发送端之间基于SIP协议进行自适应码率调整的交互过程示意图;
图10C为本发明实施例的另一种接收端与发送端之间基于SIP协议进行自适应码率调整的交互过程示意图;
图11为本发明实施例提供的应用于接收端的自适应码率调整装置的功能模块框图;
图12为本发明实施例提供的应用于发送端的自适应码率调整装置的功能模块框图。
图标:100-接收端;200-发送端;110-自适应码率调整装置;120-处理器;130-存储器;1102-接收模块;1104-解析模块;1106-带宽计算模块;1108-网络管理模块;1110-码率确定模块;1112-请求发起模块;210-自适应码率调整装置;220-处理器;230-存储器;2102-请求接收模块;2104-协议解析模块;2106-媒体信息更新模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,是本发明实施例提供的一种自适应码率调整方法的应用场景示意图。该场景中,接收端100通过有线网络或无线网络与发送端200之间基于会话初始协议(Session Initiation Protocol,简称SIP)进行音视频的媒体流传输。
所述接收端100和发送端200可以是,但不限于,用于转换服务的视频网关设备或基于会话初始协议的视频终端(以下简称SIP视频终端)。具体地,如图2A所示,所述视频网关设备与SIP视频终端互为对端,当该视频网关设备作为接收端100时,相对应地,所述SIP视频终端则为发送端200,反之可推。或者,如图2B所示,位于同一视频通信系统中的两个SIP视频终端互为对端,其中一个终端作为发送端200时,相对应地,另一个终端则作为接收端100。
如图3所示,是本发明实施例提供的一种接收端100的方框示意图。该接收端100包括自适应码率调整装置110、处理器120以及存储器130。所述自适应码率调整装置110包括至少一个可以软件或固件的形式存储于所述存储器130中或固化在所述接收端100的操作系统中的软件功能模块。所述处理器120用于执行存储器130中存储的可执行模块,例如所述自适应码率调整装置110包括的软件功能模块或计算机程序。
如图4所示,是本发明实施例提供的一种发送端200的方框示意图。该发送端200包括自适应码率调整装置210、处理器220以及存储器230。所述自适应码率调整装置210包括至少一个可以软件或固件的形式存储于所述存储器230中或固化在所述接收端100的操作系统中的软件功能模块。所述处理器220用于执行存储器230中存储的可执行模块,例如所述自适应码率调整装置210包括的软件功能模块或计算机程序。
如图5所示,是本发明实施例提供的一种应用于接收端100的自适应码率调整方法的流程图。所应说明的是,本实施例提供的方法不以图5及以下所述的具体顺序为限制。下面将对图5所示的各步骤进行详细阐述。
步骤S101,接收发送端200发送的数据包。
步骤S103,解析所述数据包,每间隔设定时间判断一次当前系统是否出现丢包,若是,则触发码率调整请求并转至步骤S105。
本实施例中,所述接收端100的媒体处理层按照图6所示的处理流程执行步骤S101~S103。如图6所示,该媒体处理层创建音视频接收线程并初始化线程参数后,进入while循环体,依次判断如下三个条件—线程信号量非0、ES(Elementary Stream,简称ES)队列溢出信号量非0以及接收的数据长度大于0是否同时成立,若同时成立,则对数据包进行解析,并在解析过程中每间隔设定时间(如3秒、10秒或30秒)判断一次当前的媒体流传输是否出现丢包,如果出现丢包,则触发码率调整请求,并将解析后得到的音视频数据存储至ES队列。
可以理解的是,相邻两次判断是否出现丢包的时间间隔决定了系统自适应信道带宽变化的反应时间。假设把该间隔时间设定为3秒或更短,那么带宽很小的波动都将被检测到,并立刻触发码率调整请求。
步骤S105,响应所述码率调整请求,计算出适应于系统当前媒体流传输的新的带宽参数。其中,所述带宽参数包括视频带宽和音频带宽。
首先需要说明的是,本实施例中,所述码率调整请求由该接收端100的媒体处理层触发并由其自身进行响应。当判断系统出现丢包后,该媒体处理层将立即统计系统当前的视频带宽以及丢包率,并判断系统当前的音频解码格式是否为一预设格式。本实施例中,所述预设格式可以是,但不限于,G.729A音频解码格式。
当系统当前的音频解码格式为所述预设格式时,根据第一计算式:Bn=Br×(1-PL)计算出新的视频带宽,其中,Br表示当前的视频带宽,PL表示丢包率,Bn表示所述新的视频带宽;当系统当前的音频解码格式非所述预设格式时,则根据第二计算式:Bn=Br×(1-PL)2计算出新的视频带宽,并将该音频解码格式转换为所述预设格式。该预设格式的音频解码格式所对应的音频带宽即为该系统新的音频带宽,例如,当所述预设格式为G.729A时,其所对应的带宽8KBps即为系统新的音频带宽。
步骤S107,通过获得的所述新的带宽参数,确定相应的码率参数。所述码率参数包括视频码率和音频码率。
步骤S109,根据所述码率参数构建新的会话描述协议,并向发送端200发起包括该新的会话描述协议的建立会话请求。
本实施例中,由所述接收端100的信令层按照图6所示的处理流程执行步骤S107~S109。
当系统的音频解码格式为所述预设格式或者已转换为所述预设格式后,系统的音频码率即为该预设格式所对应的解码码率。所以,所述信令层在执行步骤S107时,实际只需要确定系统的视频码率。
作为一种实施方式,该接收端100内存储有一如图7所示的参数表。所述信令层根据新的视频带宽以及当前接收端100与发送端200之间所建立的会话中包括的视频媒体参数字段,对应查找所述参数表确定相应的视频码率。其中,所述视频媒体参数字段是指会话描述协议(Session Description Protocol,简称SDP)中的profile-level-id字段。图6中所示的标识为“②”的子处理流程即为信令层根据新的视频带宽及profile-level-id字段对所述参数表进行查询的过程。其中,“表长”表示参数表的长度,就图7中的参数表而言,可以理解其“表长”为15。
所述信令层确定了系统相应的视频码率和音频码率后,根据该视频码率和音频码率构建新的SDP,更为具体地说,是构建SDP中的新的媒体更新字段。为了更好的对方案进行说明,下面举例性的示出了某一会话的SDP中的媒体更新字段,如下所示:
v=0
o=6703 2364391276 2364391276IN IP4 10.10.40.67
s=sipcall
c=IN IPV4 10.10.40.67
t=0 0
m=audio 20002 RTP/AVP 18
b=TIAS:64000
a=rtpmap:8PCMA/8000
a=ptime:20
a=sendrecv
m=video 20000RTP/AVP 100
b=TIAS:1024000
a=rtpmap:100H264/90000
a=fmtp:100profile-level-id=42001e;max-mbps=48600;max-fs=1620
a=sendrecv
其中,m=audio中b=TIAS:64000表示系统的音频码率,m=video中b=TIAS:64000表示系统的视频码率,profile-level-id=42001e表示视频的媒体参数。
可以理解,所述信令层构建新的SDP的方式就是将上述的对应系统音频码率及系统视频码率的字段中的参数值替换为在步骤S107中所确定的码率参数。当新的SDP构建完成后,所述信令层根据该SDP创建REINVITE,以请求修改当前接收端100与发送端200之间已建立的会话。
当所述发送端200接收到该REINVITE消息后,如果两者之间经过三次握手确认对当前会话进行修改,则该发送端200将根据REINVITE消息中的SDP所包括的系统音频码率及系统视频码率生成媒体更新信息,以对发送端200的视频输出码率和音频码率进行调整。具体地,如图8所示,所述发送端200响应该REINVITE消息的过程包括如下步骤。
步骤S201,接收REINVITE消息。
步骤S203,解析所述REINVITE消息中的SDP,获取所述码率参数。
本实施例中,由所述发送端200中的信令层执行步骤S201~S203。当该信令层接收到对端发送的REINVITE消息后,对其中的SDP进行解析,获得该SDP的媒体更新字段中的视频码率和音频码率。
步骤S205,根据解析后获取的所述码率参数对媒体信息进行更新。
在发送端200与接收端100之间经过三次握手确认对当前会话进行修改后,该发送端200的信令层下发媒体更新消息至发送端200的媒体处理层,以使所述媒体处理层根据所述码率参数更新系统的视频输出码率和音频输出码率。
特别说明的是,当视频网关设备作为接收端100时,如图9所示,在图5所示的自适应码率调整方法中通常还包括:
步骤S106,查找信令会话参数获取会话唯一标识ID,根据该会话唯一标识ID下发媒体信息更新指令。
该步骤S106与上一步骤S105及下一步骤S107在流过程意义上的连接关系为,当所述视频网关设备中的媒体处理层计算出新的带宽参数后(媒体处理层执行完步骤S105后),将该新的带宽参数上报至网络管理层,以使该网络管理层进行消息协议转换分发处理,即查找信令会话参数获取会话唯一标识ID,并根据该会话唯一标识ID下发媒体信息更新指令至视频网关设备中的信令层。所述信令层接收到该媒体信息更新指令并对该指令进行解析后,执行所述步骤S107。
同样地,当所述视频网关设备作为发送端200时,该视频网关设备的信令层解析出码率参数后,下发媒体控制消息至网络管理层,以使该网络管理层将媒体更新消息转发至媒体处理层,进而通过媒体处理层对系统的视频输出码率和音频输出码率进行调整。
较佳地,为了整体性的进一步说明所述接收端100与发送端200之间基于SIP协议进行自适应码率调整的交互过程,本实施例提供如下几种具体应用场景下的交互示意图。
如图10A所示,所述视频网关设备作为接收端100,相对应地,SIP视频终端作为发送端200。当视频网关设备中的媒体处理层对数据包解析过程中,判定系统出现丢包后,将触发码率调整请求,计算新的带宽参数后上报至网络管理层,以使该网络管理层根据会话唯一标识ID将所述新的带宽参数分发至信令层。所述信令层根据新的带宽参数确定相应的码率参数后,构建新的SDP,并向SIP视频终端发起REINVITE。所述视频网关设备的信令层与SIP视频终端的信令层之间经过三次握手确认基于该REINVITE对当前已建立的会话进行修改后,SIP视频终端的信令层下发媒体更新消息至媒体处理层,以使该媒体处理层根据所述码率参数调整系统当前的音视频输出码率。
如图10B所示,所述SIP视频终端作为接收端100,相对应地,视频网关设备作为发送端200。基于上述对图10A的描述,容易理解图10B中两者之间的交互过程,在此不再赘述。
如图10C所示,同一SIP视频系统中,两个SIP视频终端互为对端。不失一般性地,以左侧的SIP视频终端作为接收端100,右侧的作为发送端200,对两者之间的自适应码率调整过程进行说明。当作为接收端100的SIP视频终端中的媒体处理层发现系统出现丢包时,将触发码率调整请求,并在计算出新的带宽参数后,将该新的带宽参数直接传送至信令层。所述信令层根据新的带宽参数确定相应的码率参数后,构建新的SDP,并发送包括所述新的SDP的REINVITE消息至对端(发送端)的SIP视频终端。对端的SIP视频终端的信令层接收所述REINVITE消息。在两个信令层经三次握手确认基于该REINVITE对当前已建立的会话进行修改后,该对端的SIP视频终端的信令层直接下发媒体更新信息至媒体处理层,以使该媒体处理层根据所述码率参数调整系统当前的音视频输出码率。
如图11所示,是本发明实施例提供的图3中所示的自适应码率调整装置110的功能模块框图。该装置包括属于接收端100中媒体处理层的接收模块1102、解析模块1104以及带宽计算模块1106,属于网络管理层的网络管理模块1108,以及属于信令层的码率确定模块1110以及请求发起模块1112。
所述接收模块1102,用于接收所述发送端200发送的数据包。
所述解析模块1104,用于解析所述数据包,每间隔设定时间判断一次当前系统是否出现丢包,若是,则触发所述码率调整请求。
所述带宽计算模块1106,用于响应码率调整请求,计算出适应于系统当前媒体流传输的新的带宽参数。
所述网络管理模块1108,用于查找信令会话参数获取会话唯一标识ID,根据该会话唯一标识ID下发媒体信息更新指令。
所述码率确定模块1110,用于通过获得的所述新的带宽参数,确定相应的码率参数,该码率参数包括视频码率及音频码率。
所述请求发起模块1112,用于根据所述码率参数构建新的会话描述协议,并向发送端200发起包括该新的会话描述协议的建立会话请求。
本实施例中,各功能模块的具体操作方法可参照上述相应方法实施例的描述,在此不再一一赘述。
当然,需要说明的是,当接收端100中不存在网络管理层时,相应的网络管理模块也可省略。
如图12所示,是本发明实施例提供的图4中所示的自适应码率调整装置210的功能模块框图。该装置包括属于信令层的请求接收模块2102、协议解析模块2104,以及属于媒体处理层的媒体信息更新模块2106。
所述请求接收模块2102,用于获得接收端100发起的包括新的会话描述协议的建立会话请求。
所述协议解析模块2104,用于解析所述新的会话描述协议获取所述码率参数。
所述媒体信息更新模块2106,用于根据解析后获取的所述码率参数对媒体信息进行更新,所述媒体信息包括视频输出码率和音频输出码率。
本实施例中,各功能模块的具体操作方法同样可参照上述相应方法实施例的描述,在此不再一一赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。