CN101090369B - 一种在流媒体系统中控制数据包发送速率的方法 - Google Patents
一种在流媒体系统中控制数据包发送速率的方法 Download PDFInfo
- Publication number
- CN101090369B CN101090369B CN2007101385586A CN200710138558A CN101090369B CN 101090369 B CN101090369 B CN 101090369B CN 2007101385586 A CN2007101385586 A CN 2007101385586A CN 200710138558 A CN200710138558 A CN 200710138558A CN 101090369 B CN101090369 B CN 101090369B
- Authority
- CN
- China
- Prior art keywords
- contract
- project
- time
- giving out
- packet
- 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
Abstract
本发明公开了一种在流媒体系统中控制数据包发送速率的方法,通过增加,对于缓冲器中数据包数量是否小于不发包阈值的判断,对于本次发包时间是否大于发一个数据包时间的判断,以及对于总包数和总有效发包时间是否大于调整阈值的判断,并进行相应的操作来控制媒体数据包的发送速率。
Description
技术领域
本发明涉及一种在流媒体系统中控制数据包发送速率的方法,属于通信领域。特别涉及流媒体技术领域。
背景技术
流媒体是指一种基于流式传输技术来传输的媒体,流式媒体在播放前并不需要下载整个文件,其数据流随时传送随时播放。利用流媒体技术,可以向用户提供数字广播组播电视、VOD点播、视频录像等诸多宽带多媒体业务。流媒体系统采用内容分发网络架构,将流媒体服务器部署到网络的相应节点。流媒体服务器利用流媒体协议将实时的媒体数据分发到流媒体终端,或将非实时的内容利用传统的文件传输协议分发到流媒体终端,由流媒体终端设备实时呈现给用户。
在流媒体系统中使用的流媒体服务器担负着将预先编码压缩或实时编码压缩的媒体以流的方式推送到网络中去的任务,对其有很高的性能和可靠性要求。在实际的应用过程中,由于媒体源端(实时编码压缩的设备)发送的数据包速率不稳定,传输网络延迟、流媒体服务器设备处理能力不稳定等因素,会造成流媒体设备发送出的数据包速率不稳定的现象,从而带来数据包到达流媒体终端的时间间隔不同于媒体源端发出数据包的时间间隔的问题。如果流媒体终端直接将接收到的具有这种延迟抖动的数据包进行视音频解码,将会出现声音的抖动或者是视频上的花屏,直接影响用户体验。
目前常规解决流媒体服务器发送数据包速率抖动的方法是通过将从媒体源端收到的数据包进行缓冲。如图1所示,流媒体服务器收到源端流数据包之后,将数据包存储在缓冲器中,而缓冲器以恒定的时间间隔读出各数据包,以便将不同时间到达的数据包重建成连续的数据流,并以此恒定的速率将数据包发送给机顶盒。该发包速率为流媒体服务器从源端接收到数据包的平均速率,平均速率与流媒体服务器收包总数成正比,与收包时间成反比。
如果源端在发送数据包过程中出现长时间的停止发送现象,在媒体源端恢复发送数据包之后,则该平均发送速率不准确,流媒体服务器会通过缓冲器中包的数量来对发送速率进行调整,但是在这个过程中,由于发送速率的不稳定,则恢复到发送数据包的正常速率所需的时间比较长,势必会出现上述提到的延迟抖动问题。
发明内容
本发明所要解决的技术问题是为了克服现有技术中在媒体源端出现长时间停止发送数据包,当恢复发送数据包之后,流媒体服务器发送数据包速率恢复到正常速率所需的时间比较长的缺点,并解决现有技术中存在的延迟抖动问题。
为了达到本发明所提到的目的,本发明提供了一种在流媒体系统中控制数据包发送速率方法,该方法采取的步骤如下:
S201、进入本次发包流程时,判断缓冲器中数据包数量是否小于不发包阈值,如果是,结束所述本次发包流程,否则进入步骤S202;
S202、当本次发包时间大于发一个数据包的时间时,发送数据包,否则进入步骤S203;
S203、判断总包数和总有效发包时间是否大于调整阈值,是的话,将所述总包数和所述总有效发包时间乘以调整系数并结束所述本次发包流程,否的话,结束所述本次发包流程;
其中,所述不发包阈值是一个系统设定的整数;所述总包数为未发包数与已发包数之和;所述总有效发包时间是流媒体服务器发包的累计时间。
所述S201的步骤具体包括:
发包开始;
判断缓冲器中数据包数量是否小于不发包阈值,如果是,则结束所述本次发包流程;
如果否,将所述本次发包时间加入总有效发包时间,并计算发包速率,然后进入步骤S202。
所述缓冲器是指流媒体服务器存储未发送至流媒体终端的数据包,即未发包,所开辟的系统内存区。
所述发包速率与总有效发包时间成正比,与总包数成反比;
所述S202的步骤具体包括:
当所述本次发包时间大于发一个数据包的时间时,发送所述数据包到流媒体终端,并对所述未发包数减一,所述已发包数加一,从所述本次发包时间中减去所述发一个数据包的时间;
直到所述本次发包时间小于所述发一个数据包的时间时,进入步骤S203。
所述发一个数据包的时间为发包速率的倒数。
所述步骤S203中,所述调整阈值与所述发包速率成正比。
所述步骤S203中,所述总包数和所述总有效发包时间的调整阈值非必要相同。
所述步骤S203中,所述调整系数相同且必须小于1。
本发明,由于没有把无效的发包时间,即流媒体没有收到媒体源端发送的数据包的时间统计到总发包时间内,因此与现有技术相比,计算出的媒体平均发送速率更加精确。
本发明,由于将总包数和总有效发包时间随着时间的变化,进行了动态的调整,从而增加了最近时间流媒体服务器收数据包和发数据包数目的权重,达到了媒体源端发送流数据包出现异常情况下,流媒体服务器可以快速恢复到正常发送数据包速率的目的。
综合以上两点,采用本发明,可以有效改善流媒体服务器发送数据包的延迟抖动问题,提高了流媒体系统的性能和用户体验。
附图说明
图1是目前常规解决流媒体服务器发送数据包速率抖动的方法示意图;
图2是本发明控制媒体发送速率的流程图;
图3是本发明的一个具体实施例流程图。
具体实施方式
下面结合附图和实施例对本发明进行进一步说明。
如图2所示,图2是本发明控制媒体发送速率的流程图。在本发明中,通过以下步骤对媒体的发送速率进行控制:
S201、进入本次发包流程时,判断缓冲器中数据包数量是否小于不发包阈值,是的话,结束所述本次发包流程,否的话,进入步骤S202;
S202、当本次发包时间大于发一个数据包的时间时,发送数据包,否则进入步骤S203;
S203、判断总包数和总有效发包时间是否大于调整阈值,是的话,将所述总包数和所述总有效发包时间乘以调整系数并结束所述本次发包流程,否的话,结束所述本次发包流程。
所述S201的步骤具体包括:
发包开始;
判断缓冲器中数据包数量是否小于不发包阈值,如果是,则结束所述本次发包流程;
如果否,将所述本次发包时间加入总有效发包时间,并计算发包速率,然后进入步骤S202。
所述不发包阈值是一个系统设定的整数;以及,
所述缓冲器是指流媒体服务器存储未发送至流媒体终端的数据包,即未发包,所开辟的系统内存区。
所述总有效发包时间是流媒体服务器发包的累计时间;
所述发包速率与总有效发包时间成正比,与总包数成反比;
所述总包数为未发包数与已发包数之和。
所述S202的步骤具体包括:
当所述本次发包时间大于发一个数据包的时间时,发送所述数据包到流媒体终端,并对所述未发包数减一,所述已发包数加一,从所述本次发包时间中减去所述发一个数据包的时间;
直到所述本次发包时间小于所述发一个数据包的时间时,进入步骤S203。
所述发一个数据包的时间为发包速率的倒数。
所述步骤S203中,所述调整阈值与所述发包速率成正比。
所述步骤S203中,所述总包数和所述总有效发包时间的调整阈值非必要相同。
所述步骤S203中,所述调整系数相同且必须小于1。
图3是本发明的一个具体实施例流程图,其步骤具体如下:
S301,流媒体服务器接收到媒体源端发送来的数据包后,(流媒体服务器接收数据包,以及对数据包的相应的处理过程,由于与本发明要保护的内容无关,所以不在这个进行详细说明),将数据包放入缓冲器。并等待系统的调度,进行发送缓冲器中数据包到流媒体客户端的操作。系统从等待状态到发包状态,进入步骤S302。其中:
流媒体服务器接受数据包并将后者放入缓冲器的操作与等待系统调度的过程,是同时进行的。并且,
进入发包状态后,流媒体服务器不能将数据包放入缓冲器,因为要对缓冲器中的数据包进行操作,这样可以防止缓冲器中的数据包数量动态变化而令数据不准确以及,
在进入发包状态时,系统需提供本次发包时间,该时间规定了发包状态的持续时间。
S302,流媒体服务器将缓冲器中的包数与系统设定的不发包阈值进行比较。其中:
如果前者小于后者,则说明缓冲器中的数据包的数量(未发包数)没有达到发送的要求,以此可以判断媒体源端最近没有数据包发送至流媒体服务器,所以停止发送,转至步骤S308。
如果前者大于后者,则说明缓冲器中的数据包的数量(未发包数)已经达到发送的要求,进入步骤S303。以及,
在本实施例中,不发包阈值设置为1。
S303,流媒体服务器将步骤S301中的本次发包时间加入到有效发包时间中,并计算发包速率。其中:
有效发包时间为流媒体服务器发送数据包的总时间。并且,
总包数为未发包数与发包数之和。以及,
在本实施例中,发包速率为单个包的发包时间,即用总有效发包时间除以总包数。
S304,流媒体服务器将步骤S303中的发包速率与步骤S301中的本次发包时间进行比较。其中:
如果前者小于后者,说明本次发包时间足以发送一个数据包,进入步骤S305。
如果前者大于后者,说明本次发包时间不足以发送一个数据包,因此,转至步骤S306。其中,
发一个数据包时间为发包速率的倒数。
S305,发送数据包到流媒体终端。(由于发送数据包到流媒体终端的处理过程与本发明要保护的内容无关,所以不在这个进行详细说明)其中:
将已发包数进行加一操作。并且,
将未发包数进行减一操作。以及,
将步骤S301中的本次发包时间减掉步骤S303中的发包速率。
以上操作结束后,转至步骤S304。
S306,流媒体服务器将总包数和总有效发包时间和调整阈值进行比较。
本实施例中,总包数和总有效发包时间是否大于调整阈值;
如果不满足上述条件,则转至步骤S308。
如果满足上述条件,则进入步骤S307。
S307,流媒体服务器将总包数和总有效发包时间乘以调整系数。
调整系数在本实施例中为2的负16次幂。
改变了总包数和总有效发包时间之后,进入步骤S308。
S308,本次发包结束。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (9)
1.一种在流媒体系统中控制数据包发送速率的方法,其特征在于,包括:
S20进入本次发包流程时,判断缓冲器中数据包数量是否小于不发包阈值,如果是,结束所述本次发包流程,否则进入步骤S202;
S202、当本次发包时间大于发一个数据包的时间时,发送数据包,否则进入步骤S203;
S203、判断总包数和总有效发包时间是否大于调整阈值,是的话,将所述总包数和所述总有效发包时间乘以调整系数并结束所述本次发包流程,否的话,结束所述本次发包流程;
其中,所述不发包阈值是一个系统设定的整数;所述总包数为未发包数与已发包数之和;所述总有效发包时间是流媒体服务器发包的累计时间。
2.按照权利要求1所述的一种在流媒体系统中控制数据包发送速率的方法,其特征在于:所述S201的步骤具体包括:
发包开始;
判断缓冲器中数据包数量是否小于不发包阈值,如果是,则结束所述本次发包流程;
如果否,将所述本次发包时间加入总有效发包时间,并计算发包速率,然后进入步骤S202。
3.按照权利要求1或2所述的一种在流媒体系统中控制数据包发送速率的方法,其特征在于:
所述缓冲器是指流媒体服务器存储未发送至流媒体终端的数据包,即未发包,所开辟的系统内存区。
4.按照权利要求1或2所述的一种在流媒体系统中控制数据包发送速率的方法,其特征在于:
发包速率与总有效发包时间成正比,与总包数成反比。
5.按照权利要求1所述的一种在流媒体系统中控制数据包发送速率的方法,其特征在于:所述S202的步骤具体包括:
当所述本次发包时间大于发一个数据包的时间时,发送所述数据包到流媒体终端,并对所述未发包数减一,所述已发包数加一,从所述本次发包时间中减去所述发一个数据包的时间;
直到所述本次发包时间小于所述发一个数据包的时间时,进入步骤S203。
6.按照权利要求1或5所述的一种在流媒体系统中控制数据包发送速率的方法,其特征在于:所述发一个数据包的时间为发包速率的倒数。
7.按照权利要求1所述的一种在流媒体系统中控制数据包发送速率的方法,其特征在于:所述步骤S203中,所述调整阈值与发包速率成正比。
8.按照权利要求1所述的一种在流媒体系统中控制数据包发送速率的方法,其特征在于:所述步骤S203中,所述总包数和所述总有效发包时间的调整阈值非必要相同。
9.按照权利要求1所述的一种在流媒体系统中控制数据包发送速率的方法,其特征在于:所述步骤S203中,所述调整系数相同且必须小于1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101385586A CN101090369B (zh) | 2007-08-01 | 2007-08-01 | 一种在流媒体系统中控制数据包发送速率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101385586A CN101090369B (zh) | 2007-08-01 | 2007-08-01 | 一种在流媒体系统中控制数据包发送速率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101090369A CN101090369A (zh) | 2007-12-19 |
CN101090369B true CN101090369B (zh) | 2010-07-14 |
Family
ID=38943541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101385586A Expired - Fee Related CN101090369B (zh) | 2007-08-01 | 2007-08-01 | 一种在流媒体系统中控制数据包发送速率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101090369B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045772B (zh) * | 2009-10-21 | 2015-06-03 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN103124379B (zh) * | 2011-11-18 | 2016-07-06 | 中国电信股份有限公司 | 一种流媒体推送速率控制方法和装置 |
CN102739547B (zh) * | 2012-07-12 | 2015-08-19 | 阔地教育科技有限公司 | 一种速率控制方法 |
CN104869461A (zh) * | 2015-05-22 | 2015-08-26 | 南京创维信息技术研究院有限公司 | 视频数据处理系统及方法 |
CN108337180A (zh) * | 2017-01-19 | 2018-07-27 | 成都鼎桥通信技术有限公司 | 一种实现udp稳定速率灌包的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111058B1 (en) * | 2000-06-28 | 2006-09-19 | Cisco Technology, Inc. | Server and method for transmitting streaming media to client through a congested network |
CN1848810A (zh) * | 2006-05-15 | 2006-10-18 | 武汉虹旭信息技术有限责任公司 | 一种流媒体发送速率控制方法 |
CN1852229A (zh) * | 2005-10-20 | 2006-10-25 | 华为技术有限公司 | 实时流媒体传输方法及系统 |
CN1983907A (zh) * | 2005-12-13 | 2007-06-20 | 中兴通讯股份有限公司 | 一种流媒体发送速率的控制方法 |
-
2007
- 2007-08-01 CN CN2007101385586A patent/CN101090369B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111058B1 (en) * | 2000-06-28 | 2006-09-19 | Cisco Technology, Inc. | Server and method for transmitting streaming media to client through a congested network |
CN1852229A (zh) * | 2005-10-20 | 2006-10-25 | 华为技术有限公司 | 实时流媒体传输方法及系统 |
CN1983907A (zh) * | 2005-12-13 | 2007-06-20 | 中兴通讯股份有限公司 | 一种流媒体发送速率的控制方法 |
CN1848810A (zh) * | 2006-05-15 | 2006-10-18 | 武汉虹旭信息技术有限责任公司 | 一种流媒体发送速率控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101090369A (zh) | 2007-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100448291C (zh) | 改变接收的流式内容信道的方法和装置 | |
EP3348067B1 (en) | Fast channel change in a multicast adaptive bitrate (mabr) streaming network using multicast repeat segment bursts in a shared progressive abr download pipe | |
KR101286830B1 (ko) | 늦은 멀티캐스트 참여의 고속 채널 변경 | |
EP3172862B1 (en) | Joint quality management across multiple streams | |
CN104737514A (zh) | 用于分布媒体内容服务的方法和设备 | |
JP4733743B2 (ja) | リアルタイムコンテンツ配信におけるクライアント入力バッファの使用率を測定するための装置及び方法 | |
WO2017042675A1 (en) | Fast channel change in a multicast adaptive bitrate (mabr) streaming network using multicast repeat segment bursts in a dedicated bandwidth pipe | |
CN102547449A (zh) | 一种控制终端缓冲媒体流数据的方法、机顶盒及媒体服务器 | |
CN101090369B (zh) | 一种在流媒体系统中控制数据包发送速率的方法 | |
MX2011013684A (es) | Metodo y dispositivo para el empuje rapido de torrente de transmision unidireccional en cambio rapido de canal. | |
CN113242436B (zh) | 直播数据的处理方法、装置及电子设备 | |
KR100848309B1 (ko) | 고속 버퍼링 스위치를 이용한 인터넷 방송 서비스 제공방법 및 그 장치 | |
US20100299448A1 (en) | Device for the streaming reception of audio and/or video data packets | |
US20140226561A1 (en) | Method and apparatus for video or multimedia content delivery | |
CN105306970B (zh) | 一种流媒体直播发送速度的控制方法及装置 | |
KR100826224B1 (ko) | 광 동축 혼합망에서의 데이터 버퍼링 장치 및 방법 | |
US20150195589A1 (en) | Method of and apparatus for determining a composite video services stream | |
Adeliyi et al. | Fast channel navigation of internet protocol television using adaptive hybrid delivery method | |
CN105393533B (zh) | 播放多个媒体内容的方法、装置和网络媒体系统 | |
JP4247888B2 (ja) | 映像配信システムおよび映像配信方法 | |
EP2912817B1 (en) | A method and apparatus for distributing media content services | |
Liu et al. | Multi-buffer based congestion control for multicast streaming of scalable video | |
JP2008271084A (ja) | 映像受信端末 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100714 Termination date: 20170801 |