CN107465947A - 一种流媒体传输的动态码率的调节方法、装置及传输系统 - Google Patents

一种流媒体传输的动态码率的调节方法、装置及传输系统 Download PDF

Info

Publication number
CN107465947A
CN107465947A CN201710718159.0A CN201710718159A CN107465947A CN 107465947 A CN107465947 A CN 107465947A CN 201710718159 A CN201710718159 A CN 201710718159A CN 107465947 A CN107465947 A CN 107465947A
Authority
CN
China
Prior art keywords
packet loss
jitter
module
client
code check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710718159.0A
Other languages
English (en)
Inventor
徐波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GUANGDONG LIWEI NETWORK TECHNOLOGY CO LTD
Multi Benefit Network Co Ltd
Guangzhou Duoyi Network Co Ltd
Original Assignee
GUANGDONG LIWEI NETWORK TECHNOLOGY CO LTD
Multi Benefit Network Co Ltd
Guangzhou Duoyi Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GUANGDONG LIWEI NETWORK TECHNOLOGY CO LTD, Multi Benefit Network Co Ltd, Guangzhou Duoyi Network Co Ltd filed Critical GUANGDONG LIWEI NETWORK TECHNOLOGY CO LTD
Priority to CN201710718159.0A priority Critical patent/CN107465947A/zh
Publication of CN107465947A publication Critical patent/CN107465947A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种适用于流媒体传输的动态码率调节方法,包括以下步骤:S1:获取平均丢包率和平均抖动;当进行降码率调节时,执行步骤S2;当进行升码率调节时,执行步骤S3;S2:判断丢包率是否大于设定门限值,若是,则直接切换;若否,则继续判断抖动是否大于设定门限值;若是,则进行码率切换;若否,则不进行切换;S3:判断丢包率是否大于设定门限值,若是,则不进行切换;若否,则判断抖动是否大于设定门限值;若是,则不进行切换;若否,则进行码率切换。相比于现有技术,本发明实现简单,无需服务器参与,适用性广,能够有效确保不同网络传输环境下的即时通信质量。另外,本发明还提供了一种用于实现上述方法的动态码率调节装置和传输系统。

Description

一种流媒体传输的动态码率的调节方法、装置及传输系统
技术领域
本发明涉及一种通信领域,特别是一种适用于流媒体传输的动态码率调节方法、装置及传输系统。
背景技术
流媒体技术广泛应用于各种音视频即时通信场景。然而Internet只提供尽力而为(best-effort)的服务,无法提供Qos保证。流媒体数据在复杂的网络环境中传输,会产生延时,抖动和丢包,处理不当,会严重影响用户体验。
在流媒体传输环境中,当网络状况较差时,码率越高反而会导致用户体验差,此时降低码率,有助于抵消网络质量不佳所带来的负面影响。
因此,针对现有问题,需要提供一种适用于流媒体传输的动态码率的调节方法及系统。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供了一种适用于流媒体传输的动态码率调节方法及系统。
本发明通过以下的方案实现:一种适用于流媒体传输的动态码率调节方法,包括以下步骤:
S1:获取平均丢包率和平均抖动;当进行降码率调节时,执行步骤S2;当进行升码率调节时,执行步骤S3;
S2:判断丢包率是否大于设定门限值,若是,则直接切换;
若否,则继续判断抖动是否大于设定门限值;若是,则进行码率切换;若否,则不进行切换;
S3:判断丢包率是否大于设定门限值,若是,则不进行切换;
若否,则判断抖动是否大于设定门限值;若是,则不进行切换;若否,则进行码率切换。
作为本发明的进一步改进,所述步骤S1中,在获取平均丢包率时,通过缓存数组存储最新的3个丢包率,并对这3个丢包率进行平均计算。
作为本发明的进一步改进,当在对存储的丢包率进行更新时,对最新获取的丢包率进行异常判断,若该丢包率判断为异常,则不将该最新获取丢包率更新至缓存数组中;若连续两个丢包率判断为异常,则将这两个丢包率都更新至缓存数组中;在判断丢包率是否异常时,通过将最新获取的丢包率减去上一次更新的丢包率,若大于设定门限值,则判断为异常。
作为本发明的进一步改进,所述步骤S1中,在获取平均抖动时,通过缓存数组存储最新的3个抖动值,并对这3个抖动值进行平均计算。
作为本发明的进一步改进,当在对存储的抖动值进行更新时,对最新获取的抖动值进行异常判断,若该抖动值判断为异常,则不将该最新获取抖动值更新至缓存数组中;若连续两个抖动值判断为异常,则将这两个抖动值都更新至缓存数组中;在判断抖动值是否异常时,通过将最新获取的抖动值减去上一次更新的抖动值,若大于设定门限值,则判断为异常。
本发明还提供了一种流媒体传输的动态码率调节装置,包括平均丢包率获取模块、平均抖动获取模块、丢包率判断模块和抖动判断模块;
所述平均丢包率获取模块,用于获取平均丢包率;
所述平均抖动获取模块,用于获取平均抖动值;
当进行降码率调节时,通过所述丢包率判断模块,判断丢包率是否大于设定门限值,若是,则直接切换;若否,再通过所述抖动判断模块,判断抖动是否大于设定门限值,若是,则进行码率切换;若否,则不进行切换;
当进行升码率调节时,通过所述丢包率判断模块,判断丢包率是否大于门限值,若是,则不进行切换;若否,再通过所述抖动判断模块,判断抖动是否大于设定门限值,若是,则不进行切换;若否,则进行码率切换。
作为本发明的进一步改进,所述平均丢包率获取模块包括:丢包率计算模块,用于在获取平均丢包率时,通过缓存数组存储最新的3个丢包率,并对这3个丢包率进行平均计算。
作为本发明的进一步改进,所述平均丢包率获取模块包括:丢包率计算模块和丢包率异常判断模块;
所述丢包率计算模块用于在获取平均丢包率时,通过缓存数组存储最新的3个丢包率,并对这3个丢包率进行平均计算;
所述丢包率异常判断模块,用于当在对存储的丢包率进行更新时,对最新获取的丢包率进行异常判断,若该丢包率判断为异常,则不将该最新获取丢包率更新至缓存数组中;若连续两个丢包率判断为异常,则将这两个丢包率都更新至缓存数组中;所述丢包率异常判断模块在判断丢包率是否异常时,通过将最新获取的丢包率减去上一次更新的丢包率,若大于设定门限值,则判断为异常。
作为本发明的进一步改进,所述平均抖动获取模块包括:抖动值计算模块和抖动值异常判断模块;
所述抖动值计算模块,用于在获取平均抖动时,通过缓存数组存储最新的3个抖动值,并对这3个抖动值进行平均计算;
所述抖动值异常判断模块,用于当在对存储的抖动值进行更新时,对最新获取的抖动值进行异常判断,若该抖动值判断为异常,则不将该最新获取抖动值更新至缓存数组中;若连续两个抖动值判断为异常,则将这两个抖动值都更新至缓存数组中;所述抖动值异常判断模块在判断抖动值是否异常时,通过将最新获取的抖动值减去上一次更新的抖动值,若大于设定门限值,则判断为异常。
另外,本发明还提供了一种流媒体传输系统,其特征在于:包括第一客户端和第二客户端;
所述第一客户端包括第一网络下行质量评估模块、第一客户端网络控制交互模块、第一计算参数模块和第一网络收发模块;所述第一客户端网络控制交互模块包括所述的流媒体传输的动态码率调节装置;
所述第二客户端包括第二网络下行质量评估模块、第二客户端网络控制交互模块、第二计算参数模块和第二网络收发模块;所述第二客户端网络控制交互模块包括所述的流媒体传输的动态码率调节装置;
当第一客户端接收来自第二客户端的数据时,通过所述第一网络下行评估模块,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第一客户端网络交互控制模块,获取第二客户端的当前码率并向第二客户端反馈应该修改的码率;根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第二客户端接受并解析出第一客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改;
当第二客户端接收来自第一客户端的数据时,通过所述第二网络下行评估模块,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第二客户端网络交互控制模块,获取第一客户端的当前码率并向第一客户端反馈应该修改的码率;根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第一客户端接收并解析出第二客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改。
作为本发明的进一步改进,所述第一客户端网络交互控制模块通过端到端的透传协议向第二客户端发送应该修改的码率,所述透传协议每隔1/3T时长发送一次;
所述第二客户端网络交互控制模块通过端到端的透传协议向第一客户端发送应该修改的码率,所述透传协议每隔1/3T时长发送一次。
相比于现有技术,本发明提供的动态码率调节方法是一种能够自适应网络状况的实时流媒体传输机制,网络性能评估和码率调节策略是动态码率调节的两个重要模块,其表现直接影响到动态码率调节的效果。本发明提出采用丢包率和抖动相结合的调节策略,通过评估各码率在不同丢包率和抖动下的媒体传输质量,得到该码率下能够保证所需质量的丢包率和抖动门限,然后根据门限值实施具体的调节策略。
进一步,本发明实现简单,无需服务器参与,适用性广,能够有效确保不同网络传输环境下的即时通信质量。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1是端到端即时网络通信整体框图。
图2是本发明的流媒体传输的动态码率调节方法的步骤流程图。
图3是序列号的区间划分示意图。
图4是平均抖动的求解流程图。
图5是本发明的流媒体传输的动态码率调节装置的连接框图。
图6是本发明的流媒体传输系统框图。
具体实施方式
以下结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
请参阅图1,其为端到端即时网络通信整体框图。RTP数据流在网络传输过程中,会产生丢包、延时和抖动,当丢包、延时或抖动过大时,用户体验变差。因此,在本发明中通过网络交互控制模块对RTP数据流进行调节,可以改善流媒体传输质量,从而提升用户体验。针对现有技术的缺陷,本发明提供了一种适用于流媒体传输的动态码率调节方法和系统,具体通过以下实施例进行介绍:
实施例1
首先,介绍本发明的流媒体传输的动态码率调节方法的基本流程。具体请参阅图2,其为本发明的流媒体传输的动态码率调节方法的步骤流程图。
本发明提供了一种适用于流媒体传输的动态码率调节方法,包括以下步骤:
S1:获取平均丢包率和平均抖动;当进行降码率调节时,执行步骤S2;当进行升码率调节时,执行步骤S3。
具体的,当前码率要么是升,要么是降,要么是保持不变,而且是一次是能升一级或者降低一级。比如说有三种码率:14kbps,20kbps,26kbps,若当前码率是14kbps,如果要切换码率的话,只能升到20kbsp。有多少种码率以及各种码率下的切换门限都是预先设定的。
S2:判断丢包率是否大于设定门限值,若是,则直接切换。
若否,则继续判断抖动是否大于设定门限值;若是,则进行码率切换;若否,则不进行切换。
S3:判断丢包率是否大于设定门限值,若是,则不进行切换。
若否,则判断抖动是否大于设定门限值;若是,则不进行切换;若否,则进行码率切换。
具体的,当针对丢包率和平均抖动进行平均计算时,本实施例采取的方式如下:
所述步骤S1中,在获取平均丢包率时,通过缓存数组存储最新的3个丢包率,并对这3个丢包率进行平均计算。
具体的,为了防止丢包率异常的出现,而导致平均丢包率的计算出现偏差,本发明还针对异常丢包率进行如下的处理:当在对存储的丢包率进行更新时,对最新获取的丢包率进行异常判断,若该丢包率判断为异常,则不将该最新获取丢包率更新至缓存数组中;若连续两个丢包率判断为异常,则将这两个丢包率都更新至缓存数组中。
其中,在判断丢包率是否异常时,通过将最新获取的丢包率减去上一次更新的丢包率,若大于设定门限值,则判断为异常。
同理,在进行抖动值的计算时,其与丢包率的计算方式一致,具体为:所述步骤S1中,在获取平均抖动时,通过缓存数组存储最新的3个抖动值,并对这3个抖动值进行平均计算。
为了防止由于突然出现异常抖动,而导致平均抖动值出现偏差,当在对存储的抖动值进行更新时,对最新获取的抖动值进行异常判断,若该抖动值判断为异常,则不将该最新获取抖动值更新至缓存数组中;若连续两个抖动值判断为异常,则将这两个抖动值都更新至缓存数组中。
具体的,在判断抖动值是否异常时,通过将最新获取的抖动值减去上一次更新的抖动值,若大于设定门限值,则判断为异常。
另外,本发明采用丢包率和抖动相结合的策略,前提是要确定每一种码率可以接受的丢包率和抖动范围,即确定不同码率之间切换的门限值。本实施例以VOIP为例进行说明,首先确定所使用的码率,其次通过模拟各种丢包率和抖动下的网络状况,测试各码率在模拟网络状况下的语音质量表现,选择该码率下可以接受的语音质量所对应的丢包和抖动门限,作为动态码率调节的依据。
以下通过具体实例介绍如何针对丢包率和抖动进行计算:
本发明采用的网络性能参数包括丢包率和抖动,在通信过程中,每隔周期T计算一次丢包率和抖动。
在计算丢包率时,丢包率是根据一个计算窗口时长内的丢包数和总的收包数进行计算。丢包率根据所收到的RTP包中的序列号(sequence)计算得出,请同时参阅图3,其为序列号的区间划分示意图。在丢包率计算过程中,根据新收到包的sequence与当前丢包统计窗口的关系,将sequence的落入区间划分成了五个区间,分别由1~5标记。不同的区间代表不同的意义,处理方式也一样。
MinSeq对应当前计算窗口的最小值,MaxSeq对应当前计算窗口的最大值。在计算窗口时间内正常情况下MinSeq为上一个计算窗口的MaxSeq+1,MaxSeq会随着收包序号的递增而增大。发送端的发包序号是递增的,如果网络正常,先发出去的包应该先收到,因此收包序号也应该是递增的,对应区间4,此时,MaxSeq随着收包序号的增加而更新。
如果网络不正常,收到的包序号小于MaxSeq,但是大于MinSeq,则对应区间3。
如果收到的包序小于MinSeq,大于kMaxDisorder,即对应区间2,也表示该包是乱序包,但是乱序比区间3严重。
KMaxDisorder,表示允许的最大乱序门限,一般网络造成的乱序不会小于这个值,区间1对应的是对方断网的情况。
KMaxLoss表示允许的最大丢包门限,区间5对应的本方断网的情况。
其中,区间1表示客户端退出频道重新进入的情况,区间5表示客户端断网重连的情况,这两种情况需要reset所有相关丢包统计参数。区间2表示严重乱序区间,落入该区间sequence不进行任何处理。区间3表示当前统窗口的乱序,这种情况算有效来包,但MaxSeq不会更新,区间4MaxSeq正常更新,区间3和区间4的sequence需要排除重复收包的情况。
另外,在进行抖动计算时,包括以下步骤:
步骤1、每收到一个RTP包,由其接收时间戳减去发送时间戳;
步骤2、对当前计算周内步骤1的所有结果进行排序;
步骤3、根据步骤2的排序结果,由最大值减去最小值得到当前周期内的抖动。
接下来,由于网络环境的不确定性,为了防止在动态码率调节过程中出现频繁的码率切换,需要对上述所求的丢包率和抖动进行平滑处理,具体为对丢包率和抖动值求取平均值,并排除异常值。请同时参阅图4,其为平均抖动的求解流程图。以下以抖动值为例,介绍如何进行平均抖动值的求解流程,具体包括如下步骤:
S101:初始化参数:avg_jitter=0;times=0;jitter_ct1=0;jitter[1]=jitter[2]=jitter[3]=0;jitter_disorder=0。
S102:判断是否停止求解,若否,则继续执行步骤S103;若是,则结束求解。
S103:接收new_jitter,以及将times加1。
S104:判断new_jitter-jitter[2]是否小于kJitterUpdateThreshold,若是,则执行步骤S105;若否,则执行步骤S201;
S105:判断jitter_ct1是否为0;若是,则执行步骤S106;若否,则执行步骤S301;
S106:将jitter[2]赋值给jitter[1],jitter[3]赋值给jitter[2],new_jitter赋值给jitter[3];
S107:求解Avg_jitter;具体为:判断times是否大于2,若是,则Avg_jittter=(jitter[1]+jitter[2]+jitter[3])/3。
若否,则Avg_jitter=(jitter[1]+jitter[2]+jitter[3])/((times+1)%3)。
输出Avg_jitter,并返回步骤S102。
S201:判断jitter_ct1是否等于0;若是,则
将jitter_ct1赋值为1,将new_jitter赋值给jitter_disorder,并执行步骤:S107;
若否,则:
将jitter[2]赋值给jitter[1],将jitter_disorder赋值给jitter[2],将new_jitter赋值给jitter[3],将jitter_ct1赋值为0,将jitter_disorder赋值为0,并执行步骤S107。
S301:将jitter[1]赋值给jitter[1],将jitter[3]赋值给jitter[2],将new_jitter赋值给jitter[3];将jitter_ct1赋值为0;将jitter_disorder赋值为0,并执行步骤S107。
如上述流程所述,缓存数组只缓存最近三次更新的抖动,在缓存数组更新过程中,需要设定缓存数组的更新门限,如果新来的抖动减去上一次更新的抖动小于设定的门限值,则正常更新缓存数组,如果大于设定的门限值,并且是第一次大于门限值,则不更新,如果下一次新来的抖动减去上一次更新的抖动仍大于门限值,即连续两次新来的抖动减去上一次更新的抖动都大于门限值,则这两个抖动值都要更新到缓存数组。不论缓存数组是否更新,每隔周期T对缓存数组中的值取平均,得到平均抖动。
而丢包率的求解过程与上述抖动的求解过程一致,故不赘述。
实施例2
请同时参阅图5,其为本发明的流媒体传输的动态码率调节装置的连接框图。为了实现实施例1的动态码率调节方法,本实施例2还提供了一种流媒体传输的动态码率调节装置1,包括平均丢包率获取模块11、平均抖动获取模块12、丢包率判断模块13和抖动判断模块14。
所述平均丢包率获取模块11,用于获取平均丢包率;
所述平均抖动获取模块12,用于获取平均抖动值;
当进行降码率调节时,通过所述丢包率判断模块13,判断丢包率是否大于设定门限值,若是,则直接切换;若否,再通过所述抖动判断模块14,判断抖动是否大于设定门限值,若是,则进行码率切换;若否,则不进行切换;
当进行升码率调节时,通过所述丢包率判断模块13,判断丢包率是否大于门限值,若是,则不进行切换;若否,再通过所述抖动判断模块14,判断抖动是否大于设定门限值,若是,则不进行切换;若否,则进行码率切换。
进一步,所述平均丢包率获取模块11包括:丢包率计算模块111和丢包率异常判断模块112。
所述丢包率计算模块111,用于在获取平均丢包率时,通过缓存数组存储最新的3个丢包率,并对这3个丢包率进行平均计算。
所述丢包率异常判断模块112,用于当在对存储的丢包率进行更新时,对最新获取的丢包率进行异常判断,若该丢包率判断为异常,则不将该最新获取丢包率更新至缓存数组中;若连续两个丢包率判断为异常,则将这两个丢包率都更新至缓存数组中。
具体的,所述丢包率异常判断模块在判断丢包率是否异常时,通过将最新获取的丢包率减去上一次更新的丢包率,若大于设定门限值,则判断为异常。
所述平均抖动获取模块12包括:抖动值计算模块121和抖动值异常判断模块122。
所述抖动值计算模块121,用于在获取平均抖动时,通过缓存数组存储最新的3个抖动值,并对这3个抖动值进行平均计算。
所述抖动值异常判断模块122,用于当在对存储的抖动值进行更新时,对最新获取的抖动值进行异常判断,若该抖动值判断为异常,则不将该最新获取抖动值更新至缓存数组中;若连续两个抖动值判断为异常,则将这两个抖动值都更新至缓存数组中。
具体的,所述抖动值异常判断模块在判断抖动值是否异常时,通过将最新获取的抖动值减去上一次更新的抖动值,若大于设定门限值,则判断为异常。
在本实施例2中的流媒体传输的动态码率调节系统与实施例1中的动态码率调节方法的原理相同,故不赘述。
实施例3
本实施例中,将实施例2中的动态码率调节系统应用在现有的流媒体传输系统中,以解决现有技术在传输过程中的缺陷。具体请同时参阅图6,其为本发明的流媒体传输系统框图。本发明还提供了一种流媒体传输系统,其包括第一客户端2和第二客户端3。
所述第一客户端2包括第一网络下行质量评估模块21、第一客户端网络控制交互模块22、第一计算参数模块23和第一网络收发模块24;所述第一客户端网络控制交互模块22包括如实施例2中所述流媒体传输的动态码率调节装置1。
所述第二客户端3包括第二网络下行质量评估模块31、第二客户端网络控制交互模块32、第二计算参数模块33和第二网络收发模块34。所述第二客户端网络控制交互模块32包括如实施例2中所述流媒体传输的动态码率调节装置1。
本实施例3所采用的动态码率调节系统与实施例2中相同,故不赘述。以下简要介绍本实施例3中第一客户端和第二客户端的数据传输过程:
当第一客户端接2收来自第二客户端3的数据时,通过所述第一网络下行评估模块21,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第一客户端网络交互控制模块22,获取第二客户端3的当前码率并向第二客户端反馈应该修改的码率。根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第二客户端接受并解析出第一客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改。
同理,当第二客户端接3收来自第一客户端的数据时,通过所述第二网络下行评估模块31,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第二客户端网络交互控制模块32,获取第一客户端2的当前码率并向第一客户端反馈应该修改的码率;根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第一客户端接收并解析出第二客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改。
进一步,所述第一客户端网络交互控制模块22通过端到端的透传协议向第二客户端3发送应该修改的码率,所述透传协议每隔1/3T时长发送一次。
所述第二客户端网络交互控制模块32通过端到端的透传协议向第一客户端2发送应该修改的码率,所述透传协议每隔1/3T时长发送一次。
相比于现有技术,本发明提供的动态码率调节方法是一种能够自适应网络状况的实时流媒体传输机制,网络性能评估和码率调节策略是动态码率调节的两个重要模块,其表现直接影响到动态码率调节的效果。
同时,本发明实现简单,无需服务器参与,适用性广,能够有效确保不同网络传输环境下的即时通信质量。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种流媒体传输的动态码率调节方法,其特征在于:包括以下步骤:
S1:获取平均丢包率和平均抖动;当进行降码率调节时,执行步骤S2;当进行升码率调节时,执行步骤S3;
S2:判断丢包率是否大于设定门限值,若是,则直接切换;
若否,则继续判断抖动是否大于设定门限值;若是,则进行码率切换;若否,则不进行切换;
S3:判断丢包率是否大于设定门限值,若是,则不进行切换;
若否,则判断抖动是否大于设定门限值;若是,则不进行切换;若否,则进行码率切换。
2.根据权利要求1所述流媒体传输的动态码率调节方法,其特征在于:所述步骤S1中,在获取平均丢包率时,通过缓存数组存储最新的3个丢包率,并对这3个丢包率进行平均计算。
3.根据权利要求2所述流媒体传输的动态码率调节方法,其特征在于:当在对存储的丢包率进行更新时,对最新获取的丢包率进行异常判断,若该丢包率判断为异常,则不将该最新获取丢包率更新至缓存数组中;若连续两个丢包率判断为异常,则将这两个丢包率都更新至缓存数组中,在判断丢包率是否异常时,通过将最新获取的丢包率减去上一次更新的丢包率,若大于设定门限值,则判断为异常。。
4.根据权利要求1所述流媒体传输的动态码率调节方法,其特征在于:所述步骤S1中,在获取平均抖动时,通过缓存数组存储最新的3个抖动值,并对这3个抖动值进行平均计算。
5.根据权利要求4所述流媒体传输的动态码率调节方法,其特征在于:当在对存储的抖动值进行更新时,对最新获取的抖动值进行异常判断,若该抖动值判断为异常,则不将该最新获取抖动值更新至缓存数组中;若连续两个抖动值判断为异常,则将这两个抖动值都更新至缓存数组中,在判断抖动值是否异常时,通过将最新获取的抖动值减去上一次更新的抖动值,若大于设定门限值,则判断为异常。
6.一种流媒体传输的动态码率调节装置,其特征在于:包括平均丢包率获取模块、平均抖动获取模块、丢包率判断模块和抖动判断模块;
所述平均丢包率获取模块,用于获取平均丢包率;
所述平均抖动获取模块,用于获取平均抖动值;
当进行降码率调节时,通过所述丢包率判断模块,判断丢包率是否大于设定门限值,若是,则直接切换;若否,再通过所述抖动判断模块,判断抖动是否大于设定门限值,若是,则进行码率切换;若否,则不进行切换;
当进行升码率调节时,通过所述丢包率判断模块,判断丢包率是否大于门限值,若是,则不进行切换;若否,再通过所述抖动判断模块,判断抖动是否大于设定门限值,若是,则不进行切换;若否,则进行码率切换。
7.根据权利要求6所述流媒体传输的动态码率调节装置,其特征在于:所述平均丢包率获取模块包括:丢包率计算模块和丢包率异常判断模块;
所述丢包率计算模块用于在获取平均丢包率时,通过缓存数组存储最新的3个丢包率,并对这3个丢包率进行平均计算;
所述丢包率异常判断模块,用于当在对存储的丢包率进行更新时,对最新获取的丢包率进行异常判断,若该丢包率判断为异常,则不将该最新获取丢包率更新至缓存数组中;若连续两个丢包率判断为异常,则将这两个丢包率都更新至缓存数组中;所述丢包率异常判断模块在判断丢包率是否异常时,通过将最新获取的丢包率减去上一次更新的丢包率,若大于设定门限值,则判断为异常。
8.根据权利要求6所述流媒体传输的动态码率调节装置,其特征在于:所述平均抖动获取模块包括:抖动值计算模块和抖动值异常判断模块;
所述抖动值计算模块,用于在获取平均抖动时,通过缓存数组存储最新的3个抖动值,并对这3个抖动值进行平均计算;
所述抖动值异常判断模块,用于当在对存储的抖动值进行更新时,对最新获取的抖动值进行异常判断,若该抖动值判断为异常,则不将该最新获取抖动值更新至缓存数组中;若连续两个抖动值判断为异常,则将这两个抖动值都更新至缓存数组中;所述抖动值异常判断模块在判断抖动值是否异常时,通过将最新获取的抖动值减去上一次更新的抖动值,若大于设定门限值,则判断为异常。
9.一种流媒体传输系统,其特征在于:包括第一客户端和第二客户端;
所述第一客户端包括第一网络下行质量评估模块、第一客户端网络控制交互模块、第一计算参数模块和第一网络收发模块;所述第一客户端网络控制交互模块包括如权利要求6-8任意一项所述流媒体传输的动态码率调节装置;
所述第二客户端包括第二网络下行质量评估模块、第二客户端网络控制交互模块、第二计算参数模块和第二网络收发模块;所述第二客户端网络控制交互模块包括如权利要求6-8任意一项所述流媒体传输的动态码率调节装置;
当第一客户端接收来自第二客户端的数据时,通过所述第一网络下行评估模块,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第一客户端网络交互控制模块,获取第二客户端的当前码率并向第二客户端反馈应该修改的码率;根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第二客户端接受并解析出第一客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改;
当第二客户端接收来自第一客户端的数据时,通过所述第二网络下行评估模块,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第二客户端网络交互控制模块,获取第一客户端的当前码率并向第一客户端反馈应该修改的码率;根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第一客户端接收并解析出第二客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改。
10.根据权利要求9所述流媒体传输系统,其特征在于:所述第一客户端网络交互控制模块通过端到端的透传协议向第二客户端发送应该修改的码率,所述透传协议每隔1/3T时长发送一次;
所述第二客户端网络交互控制模块通过端到端的透传协议向第一客户端发送应该修改的码率,所述透传协议每隔1/3T时长发送一次。
CN201710718159.0A 2017-08-21 2017-08-21 一种流媒体传输的动态码率的调节方法、装置及传输系统 Pending CN107465947A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710718159.0A CN107465947A (zh) 2017-08-21 2017-08-21 一种流媒体传输的动态码率的调节方法、装置及传输系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710718159.0A CN107465947A (zh) 2017-08-21 2017-08-21 一种流媒体传输的动态码率的调节方法、装置及传输系统

Publications (1)

Publication Number Publication Date
CN107465947A true CN107465947A (zh) 2017-12-12

Family

ID=60550101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710718159.0A Pending CN107465947A (zh) 2017-08-21 2017-08-21 一种流媒体传输的动态码率的调节方法、装置及传输系统

Country Status (1)

Country Link
CN (1) CN107465947A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113890786A (zh) * 2021-11-09 2022-01-04 华科电子股份有限公司 应用于在线检测设备现场总线管理LonWorks通信方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035365A (zh) * 2007-04-03 2007-09-12 中国科学院计算技术研究所 多种无线网络融合环境中的多媒体会话服务质量管理方法
GB2461391A (en) * 2008-07-04 2010-01-06 Kddi Corp Adaptive control of layer count of layered media stream.
CN102065468A (zh) * 2009-11-13 2011-05-18 华为技术有限公司 码率调整方法及服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035365A (zh) * 2007-04-03 2007-09-12 中国科学院计算技术研究所 多种无线网络融合环境中的多媒体会话服务质量管理方法
GB2461391A (en) * 2008-07-04 2010-01-06 Kddi Corp Adaptive control of layer count of layered media stream.
CN102065468A (zh) * 2009-11-13 2011-05-18 华为技术有限公司 码率调整方法及服务器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113890786A (zh) * 2021-11-09 2022-01-04 华科电子股份有限公司 应用于在线检测设备现场总线管理LonWorks通信方法和系统

Similar Documents

Publication Publication Date Title
CN106130928B (zh) 一种sdn网络下的流量控制方法及系统
US9667545B2 (en) Method and system for aggregate bandwidth control
CN100438504C (zh) 一种流媒体发送速率控制方法
EP1449312A1 (en) Method of resource control in a wireless network
CN100546277C (zh) 在无线网络中通过信令通知以优化速率控制方案的方法和通信系统
Jammeh et al. Quality of experience (QoE) driven adaptation scheme for voice/video over IP
CN108401128A (zh) 一种视频通话中的拥塞控制方法
Khademi et al. The new AQM kids on the block: Much ado about nothing?
EP1719279B1 (en) Optimising resource usage in a packet switched network
White et al. Active queue management in docsis 3. x cable modems
Muntean et al. A comparison-based study of quality-oriented video on demand
CN110191060A (zh) 一种调整数据包发送码率的方法、装置、设备及系统
CN107483990A (zh) 一种流媒体传输的动态码率调节方法、装置及传输系统
CN107465947A (zh) 一种流媒体传输的动态码率的调节方法、装置及传输系统
Lee et al. A comparison of two popular end-to-end congestion control algorithms: the case of AIMD and AIPD
CN104869113A (zh) 基于最小化完成时间的网络传输方法及系统
US8014340B2 (en) Optimising resource usage in a packet switched network
Wernersson et al. Effects of QoS scheduling strategies on performance of mixed services over LTE
CN103686657B (zh) 业务质量控制规则传递及更新方法和设备
Saldana The effect of multiplexing delay on MMORPG TCP traffic flows
Yoshida et al. Proposal and evaluation of joint rate control for stored video streaming
Fernàndez et al. An enhanced quality of service method for guaranteed bitrate services over shared channels in egprs systems
Jammeh et al. Rate-adaptive video streaming through packet dispersion feedback
Wanxiang et al. An modified RTP adaptive algorithm
CN100479424C (zh) 通信系统中实现报文数据协议数据流控的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20171212

RJ01 Rejection of invention patent application after publication