CN101330352B - 一种流媒体传输自适应码率控制方法 - Google Patents
一种流媒体传输自适应码率控制方法 Download PDFInfo
- Publication number
- CN101330352B CN101330352B CN2008100476756A CN200810047675A CN101330352B CN 101330352 B CN101330352 B CN 101330352B CN 2008100476756 A CN2008100476756 A CN 2008100476756A CN 200810047675 A CN200810047675 A CN 200810047675A CN 101330352 B CN101330352 B CN 101330352B
- Authority
- CN
- China
- Prior art keywords
- data
- code check
- address
- code rate
- difference
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种流媒体传输自适应码率控制方法,服务端设置有用于暂存待发送数据的数据缓冲区,记录数据缓冲区的当前数据写入地址W和当前数据读出地址R,根据两地址差值RW调整码率。本发明通过读写地址差RW来判断网络状况的好坏,以此来调整码率,该方案不需要客户端和周边路由器的支持,简单易行,能及时根据网络状况来调整码率。
Description
技术领域
本发明涉及多媒体传输技术领域,具体涉及一种基于TCP连接的流媒体传输码率自动调整方法。
背景技术
随着Internet的不断发展,基于Internet的多媒体传输的应用越来越广泛。由于实时多媒体业务,如语音、视频等传输对带宽有着很高的要求,在网络带宽时刻动态变化的情况下,这就需要一种自适应码率控制的方法来为用户提供可靠、流畅和实时的端对端的服务质量保证。
在有限的网络带宽动态变化时,要保证客户端流媒体播放的流畅性,一般都是采取检测网络带宽的状态,以此动态地自适应调整服务端的流媒体编码发送码率的方法。目前,有很多方法可用来检测网络带宽状况的好坏。例如,服务端通过RTP(Real-time Transport Protocol,实时传输协议)分组向客户端发送数据,客户端通过RTCP(Real-time Control Protocol,实时传输控制协议)接收器报告分组向服务端反馈网络状态信息,然后服务端从RTCP接收器报告分组中检测丢包率,以此来调整数据的发送码率。该方法需要RTP协议的支持和客户端的配合。另外,也可以衡定的时间间隔由服务端发送探测包,统计探测包到达客户端的时延抖动或丢包情况,从而估计网络状况。该方法也需要客户端的支持,并会直接减少可用的网络带宽。除此之外,我们也可以在服务端运行网络测速软件(如TCP/IP和UDP/IP的性能测量工具iperf)来准确测量带宽。该方法比较准确,不过将占用一定的系统资源,不适合于嵌入式系统的应用。
发明内容
本发明的目的在于提出一种流媒体传输自适应码率控制方法,该方法只与服务端相关,占用资源少,简单易于实现。
本发明提供的一种流媒体传输自适应码率控制方法,具体为:服务端设置用于写入待发送数据的数据缓冲区,在向客户端发送数据时从数据缓冲区读取数据,记录数据缓冲区的当前数据写入地址W和当前数据读出地址R,根据两地址间差值RW调整码率。
作为本发明的进一步改进,所述码率调整方法具体如下:
(1)令所述地址差值RW=当前数据读出地址R-当前数据写入地址W,若其满足0<RW<S*P或RW<S*(P-1),或者令所述地址差值RW=当前数据写入地址W-当前数据读出地址R,若其满足-S*P<RW<0或RW>S*(1-P),P为码率比例常数,S为数据缓冲区可存储数据个数,则降低码率,否则,进入步骤(2);
(2)所述地址差值RW等于零,则提高码率,否则保持码率不变。
作为本发明的另一改进,所述步骤(2)在得知地址差值RW等于零后,进一步判断当前统计的地址差值RW连续等于零的次数是否等于读写同址次数阈值,若相等,则提高码率,否则保持码率不变。
本发明利用读写地址差处在不同的范围以掌握不同的网络状况。当网络状况好时,数据读出地址紧跟在数据写入地址的后面,它们的地址差保持在一定的范围内;当网络状况变差时,数据读出地址将不断落后于写数据写入地址,这样地址差值将处在另一个范围里。通过比较读写地址差,确定其处在哪个范围内来判断网络状况的好坏,以此来判断是提高码率还是降低码率。从中可以看出,本发明只与服务端相关,占用资源少,简单易于实现。
附图说明
图1为本发明自适应码率控制方法的发送窗口示意图。
图2为本发明自适应码率控制方法的服务端处理数据流程图。
图3为本发明自适应码率控制方法的码率自适应调整详细流程图。
具体实施方式
下面结合附图对实施例进行详细说明。
图1显示了本发明一个实施例的窗口式自适应码率控制方法的发送窗口示意图。如图1所示,在发送窗口中有S个相同大小的用于暂存待发送数据的缓冲区单元,即该发送窗口可暂存S个数据。从数学角度上看,发送窗口就是一个二维数组A[I][J],其大小S等于行维数I。一方面,数据采集端将编码后的数据写入发送窗口,W就表示当前的写入指针;另一方面,服务端从发送窗口读取待发送的数据,R就表示当前的读取指针。W和R将在发送窗口上循环移动。令读写指针的位置差RW=R-W,RW会随着网络状况的变化而变化。
图2显示了本发明的一个实施例的窗口式自适应码率控制方法的服务端处理数据流程图,具体为:
步骤201,服务端从信号输入端采集媒体数据;
步骤202,以当前编码码率B对数据进行编码,该码率B是动态变化的。在数据发送进程里,将根据网络带宽状况动态调整其值,具体的调整方法在后面有详细说明;
步骤203,将编码后的数据写入发送窗口,相应地,写指针W循环后移,转入步骤201。
图3显示了本发明一实施例的码率自适应调整详细流程图,具体为:
步骤301,发送进程启动,准备开始向网路发送数据;
步骤302,从发送窗口中读取一维数据A[R],读指针R往后循环移一位;
步骤303,在发送数据前,计算读写指针的位置差RW;
步骤304,判断读写指针的位置差RW处在哪个范围,当其满足不等式1或不等式2,则说明网络状况不好,需要降低发送码率,转到步骤305;若不满足,则跳到步骤306。如下为不等式1和不等式2,发送窗口的比例常数P可根据具体的网络状况选取不同的值,一般1/10≤P≤9/10。
不等式1:0<RW<S*P 不等式2:RW<S*(P-1)
步骤305,将地址差值RW连续等于零的次数N置零,并令当前编码码率B=B-B-,即将发送码率降低一级,B-为数据编码码率减量,5Kbps≤B-≤30Kbps。如B-=10Kbps,每次降低10Kbps;
步骤306,当读写指针的位置差RW不在不等式1和不等式2范围内时,则说明网络状况变好了。但此时不急于提高发送码率。因为网络状况偶尔变好一点是很正常,若此时马上提高发送码率,将会造成发送码率的不稳定,这样不利于客户端的解码,容易造成图像花屏。为了保持发送码率的稳定性,故选择RW等于零作为网络状况确实变好的标志。若RW等于零时,说明网络状况确实变好了,则跳到步骤307;若RW不等于零,说明网络状况偶尔变好或则变好但不足以马上提高码率,故而跳到步骤310;
步骤307,当RW等于零时,网络状况确实变好了,但可能稳定性差,这样还不足以马上提高发送码率。故判断当前根据历史情况统计的地址差值RW连续等于零的次数N是否等于预定读写同址次数阈值N0,0≤N0≤9。若N等于N0,则说明至此发送码率已经有N0+1次没有降低的现象或说网络状况有N0+1次没有变差的现象,这样就可以提高发送码率了,故转到步骤308;若N不等于N0,进入步骤309。
步骤308,将发送码率提高一级,B=B+B+,B+为数据编码码率增量,5Kbps≤B+≤20Kbps。如B+=5Kbps,每次提高5Kbps,同时将次数N置零,为之后的循环做准备,进入步骤310;
步骤309,当次数N不等于次数阈值N0,说明网络状况变好但没有稳定下来,故而需要等一段时间,以此来检测它的稳定性。这里将次数N加1,用次数N来计算网络状况的变好的次数或至此没有发送码率降低现象的次数,以此来大致判断网络状况是否稳定了。完后,进入步骤310;
步骤310,将从发送窗口中读取出来的数据A[R]发送出去,完后又跳到步骤302重复以上步骤,直到发送进程终止。
Claims (3)
1.一种流媒体传输自适应码率控制方法,具体为:服务端设置用于写入待发送数据的数据缓冲区,在向客户端发送数据时从数据缓冲区读取数据,记录数据缓冲区的当前数据写入地址W和当前数据读出地址R,根据两地址间差值RW调整码率;
按照以下方法调整码率:
(1)令所述地址差值RW=当前数据读出地址R一当前数据写入地址W,若其满足0<RW<S*P或RW<S*(P-1),P为码率比例常数,S为数据缓冲区可存储数据个数,则降低码率,否则,进入步骤(2);
(2)若所述地址差值RW等于零,且等于零的次数N达到阈值N0,则提高码率,同时将次数N置零,否则保持码率不变;
或者按照以下方法调整码率:
(3)令所述地址差值RW=当前数据写入地址W-当前数据读出地址R,若其满足-S*P<RW<0或RW>S*(1-P),P为码率比例常数,S为数据缓冲区可存储数据个数,则降低码率,否则,进入步骤(4);
(4)若所述地址差值RW等于零,且等于零的次数N达到阈值N0,则提高码率,同时将次数N置零,否则保持码率不变。
2.根据权利要求1所述的一种流媒体传输自适应码率控制方法,其特征在于,所述码率比例常数P满足1/10≤P≤9/10。
3.根据权利要求1或2所述的一种流媒体传输自适应码率控制方法,其特征在于,所述读写同址次数阈值N0为0~9间任意一个值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100476756A CN101330352B (zh) | 2008-05-06 | 2008-05-06 | 一种流媒体传输自适应码率控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100476756A CN101330352B (zh) | 2008-05-06 | 2008-05-06 | 一种流媒体传输自适应码率控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101330352A CN101330352A (zh) | 2008-12-24 |
CN101330352B true CN101330352B (zh) | 2012-03-28 |
Family
ID=40205972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100476756A Expired - Fee Related CN101330352B (zh) | 2008-05-06 | 2008-05-06 | 一种流媒体传输自适应码率控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101330352B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101505202B (zh) * | 2009-03-16 | 2011-09-14 | 华中科技大学 | 一种流媒体传输自适应纠错方法 |
CN103731415A (zh) * | 2013-12-09 | 2014-04-16 | 乐视网信息技术(北京)股份有限公司 | 一种高码流数据传输方法及装置 |
CN105306960B (zh) * | 2015-10-18 | 2018-05-04 | 北京航空航天大学 | 一种用于传输高质量在线课程视频的动态自适应流系统 |
CN105227957A (zh) * | 2015-10-30 | 2016-01-06 | 深圳云聚汇数码有限公司 | 移动网络环境中视频编码码率控制装置、方法及系统 |
CN105227956A (zh) * | 2015-10-30 | 2016-01-06 | 深圳云聚汇数码有限公司 | 移动网络环境中视频编码码率自适应装置及方法 |
CN107659601B (zh) * | 2016-07-26 | 2019-12-17 | 中国科学院声学研究所 | 一种基于http自适应流的码率自适应方法 |
CN107920041B (zh) * | 2016-10-08 | 2020-08-25 | 北京小唱科技有限公司 | 一种直播视频数据编码比特率的调整方法和装置 |
CN108063955B (zh) * | 2017-12-15 | 2020-02-11 | 重庆邮电大学 | 基于状态机的动态自适应视频传输的码率切换方法 |
CN110730328B (zh) * | 2019-09-11 | 2020-11-17 | 浙江浙大中控信息技术有限公司 | 将多路视频展示到浏览器单页面中的方法 |
CN110708578A (zh) * | 2019-10-22 | 2020-01-17 | 北方工业大学 | 一种视频码率自适应调整方法 |
CN112738568B (zh) * | 2020-12-29 | 2023-03-03 | 深圳创维数字技术有限公司 | 码率的调整方法、音视频服务器端、接收端及发送端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655547A (zh) * | 2004-09-09 | 2005-08-17 | 上海川海信息科技有限公司 | 一种流媒体传输系统中的速率控制方法 |
CN1988662A (zh) * | 2006-12-22 | 2007-06-27 | 清华大学 | 一种自适应多媒体播放的方法 |
CN1996935A (zh) * | 2006-01-04 | 2007-07-11 | 华为技术有限公司 | 一种流媒体接收端缓冲区内数据包的动态调整方法 |
-
2008
- 2008-05-06 CN CN2008100476756A patent/CN101330352B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655547A (zh) * | 2004-09-09 | 2005-08-17 | 上海川海信息科技有限公司 | 一种流媒体传输系统中的速率控制方法 |
CN1996935A (zh) * | 2006-01-04 | 2007-07-11 | 华为技术有限公司 | 一种流媒体接收端缓冲区内数据包的动态调整方法 |
CN1988662A (zh) * | 2006-12-22 | 2007-06-27 | 清华大学 | 一种自适应多媒体播放的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101330352A (zh) | 2008-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101330352B (zh) | 一种流媒体传输自适应码率控制方法 | |
US11032343B2 (en) | Methods and devices for efficient adaptive bitrate streaming | |
JP6648223B2 (ja) | メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置 | |
US7702006B2 (en) | Adjustment of transmission data rate based on data errors and/or latency | |
CN100442796C (zh) | 一种流媒体传输系统中的速率控制方法 | |
US7640358B2 (en) | Methods and systems for HTTP streaming using an intelligent HTTP client | |
US7581019B1 (en) | Active client buffer management method, system, and apparatus | |
CN101505202B (zh) | 一种流媒体传输自适应纠错方法 | |
CA2723788C (en) | Data streaming through time-varying transport media | |
CN105451075B (zh) | 视频质量控制方法和装置 | |
US7111058B1 (en) | Server and method for transmitting streaming media to client through a congested network | |
RU2598805C2 (ru) | Способ для динамической адаптации частоты следования битов при приеме и соответствующий приемник | |
CN103533451A (zh) | 抖动缓存调节方法及其系统 | |
CN106803968B (zh) | 一种基于hls协议的带宽自适应调节视频分辨率的方法 | |
EP3384617B1 (en) | Data rate adaptation for multicast delivery of streamed content | |
US8873590B2 (en) | Apparatus and method for correcting jitter | |
CN102457486A (zh) | 一种媒体内容的传输方法及装置 | |
Dubin et al. | The effect of client buffer and MBR consideration on DASH Adaptation Logic | |
CN101267573A (zh) | 流化音频视频数据的方法和装置 | |
KR101131379B1 (ko) | Vbr 비디오 전송 시스템, 서버 및 방법 | |
KR101700370B1 (ko) | 지터 보정 방법 및 장치 | |
KR20050059801A (ko) | 패킷 전송 제어 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120328 Termination date: 20120506 |