CN102186119A - 流媒体服务器保证音视频质量动态流量控制的方法 - Google Patents
流媒体服务器保证音视频质量动态流量控制的方法 Download PDFInfo
- Publication number
- CN102186119A CN102186119A CN 201110095762 CN201110095762A CN102186119A CN 102186119 A CN102186119 A CN 102186119A CN 201110095762 CN201110095762 CN 201110095762 CN 201110095762 A CN201110095762 A CN 201110095762A CN 102186119 A CN102186119 A CN 102186119A
- Authority
- CN
- China
- Prior art keywords
- time
- bag
- frame
- group
- streaming media
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种流媒体服务器保证音视频质量动态流量控制的方法,包括:(1)播放前,将发送流文件分成一组切片,为其建立索引信息;(2)根据索引信息计算出平均码率,记录或设定组边界,帧组内的所有帧参照所述平均码率发送;(3)发送传送流包,记录最大包长,最大包长除以平均码率,得出最大包时间间隔;(4)初始播放,发包的个数为1,根据最大包时间间隔确定下一个包要发送的相对时间,计算下一个包要发送的绝对时间点,判断当前时间是否超过相对时间;(5)到达帧结尾,一个包发送完毕;(6)播放的帧到达组边界时,重新计算平均码率,进入下一循环。该方法能够解决丢包问题,降低对路由器的冲击,保证播放速度和播放效果,提高播放质量。
Description
技术领域
本发明涉及流媒体系统和分步式视频点播系统,具体来讲是一种流媒体服务器保证音视频质量动态流量控制的方法。
背景技术
流媒体系统是实时性要求非常高的系统,目前流媒体编码格式越来越多,码率变动也越来越大,良好的流量控制必须能适应这些变化。由于流媒体帧类型的不同,帧的大小相差很大,播放的帧间隔却基本相同,参照PTS(Play Time Stamp,显示时间戳)出流,如果流量控制不好,将导致流媒体服务器出流的码率很不平稳,在大并发量时,出现网络流量抖动相当大,对交换机或路由器产生冲击,很容易造成中间路由器丢包,直接影响终端解码质量,降低播放效果。当前采用的一些丢包控制技术,如RTCP(RTP Control Protocol,RTP控制协议)控制丢包重传、FEC(Forward Error Correction,前向纠错)等,能解决一定程度上的丢包,但这些技术都是建立在流媒体系统能平稳播流的基础之上的,并且此类技术需要额外的开销,如带宽和服务器的计算能力,客户端和服务器的配合等,并不能够节约成本。即便媒体流按照恒定码率播放,也存在着相应的问题,因为不少媒体是变码率的,如果码率固定,会导致码率小的部分播放过快,而码率大的部分播放过慢的问题,依旧对质量造成影响。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种流媒体服务器保证音视频质量动态流量控制的方法,不论在码率恒定或不恒定的情况下,都能够解决丢包问题,降低对路由器的冲击,保证播放速度和播放效果,提高播放质量。
为达到以上目的,本发明采取的技术方案是:一种流媒体服务器保证音视频质量动态流量控制的方法,包括如下步骤:
(1)播放前,将发送流文件按相同的播放时间切分成一组切片,并为这些切片建立索引信息,索引信息至少包括帧长、帧间隔时间、帧类型;
(2)根据所述索引信息计算出平均码率,记录或设定组边界,帧组内的所有帧参照所述平均码率发送到客户端;
(3)流媒体服务器发送传送流包时,在包内的字节数不超过链路层最大传输单元的前提下,携带最多的发送流单元,并将此大小记为最大包长,最大包长除以平均码率,得出最大包时间间隔;
(4)初始播放时,发包的个数为1,根据最大包时间间隔确定下一个包要发送的相对时间,通过相对时间加上当前时间点,计算出下一个包要发送的绝对时间点。在下一个时间信号点,判断当前时间是否超过绝对时间点,若没超过,则等待下一个时间周期;若超过,发送下一个包,进行修正;
(5)到达帧结尾,剩余字节小于最大包长时,按剩余字节长度计算时间间隔,一个包发送完毕;
(6)播放的帧到达组边界时,重新计算平均码率,进入下一循环采用上述步骤完成切片播放。
在上述技术方案的基础上,步骤(2)对于视频点播技术和实时视频点播,则将连续的多个帧分成一组,计算组内帧的总长度、总间隔,通过总长度除以总间隔计算出平均码率、并记录组边界。
在上述技术方案的基础上,步骤(2)对于直播频道,计算从第0帧到直播点帧的总长度和总时间间隔,计算平均码率,并按照组内帧数量设定组边界。
在上述技术方案的基础上,将已经录制的多个帧或者所有帧作为一组,作为后续帧的参考码率。
在上述技术方案的基础上,步骤(4)中,修正时,如果当前时间和设定的下一包发送时间的差值超过最大包时间间隔,且小于二倍时间间隔时,则当前发送的包数量加1,下一次发包的时间就是当前时间加上2倍的最大包时间间隔。
在上述技术方案的基础上,步骤(4)中,修正时,如果时间差值大于二倍时间间隔,仍按两个包发送。
本发明的有益效果在于:将多个帧设为一组,在帧组的显示时间范围内以平稳的速率将这些帧发送出去,降低对路由器的冲击,解决丢包问题;即使对于变码率(Variable Bire Rate,VBR)片源,将帧组设为较小的值(极端情况下为1),帧组变小后,同样可以保证播放效果。
具体实施方式
以下对本发明的实施例作进一步详细说明。
本发明流媒体服务器保证音视频质量动态流量控制的方法,步骤如下:
(1)播放前,将发送流文件按相同的播放时间(如设定为4分钟)切分成一组切片,并为这些切片建立索引信息,假设本实施例播放一个切片,其共有6000个帧,平均帧间隔为40ms,平均每30个帧中有一个I帧,I帧大小在40KB到60KB之间,B,P帧在10KB到30KB之间。
(2)流媒体服务器收到播放请求后,根据所述索引信息计算出平均码率,记录或设定组边界,帧组内的所有帧参照所述平均码率发送到客户端。对于视频点播技术和实时视频点播,则将连续的多个帧分成一组,计算组内帧的总长度、总间隔,通过总长度除以总间隔计算出平均码率、并记录组边界。对于直播频道,计算从第0帧到直播点帧的总长度和总时间间隔,计算平均码率,并按照组内帧数量设定组边界。将已经录制的多个帧或者所有帧作为一组,作为后续帧的参考码率。
在本实施例中,无论是点播方式还是直播方式,均将所有帧按照60个帧构成一个帧组,如0到59帧为第一个组。统计帧组的总大小S和总时间间隔T,S/T就可计算出这个帧组的平均码率M,当服务器播完59号帧时,重新计算下一个帧组的平均码率。服务器将时间分成细粒度的时间片,如1ms,当时间片到时,发送信号驱动流的发送。
(3)流媒体服务器发送传送流包,在包内的字节数不超过链路层最大传输单元的前提下,携带最多的发送流单元,并将此大小记为最大包长,最大包长除以平均码率,得出最大包时间间隔。
(4)初始播放时,发包的个数为1,根据最大包时间间隔确定下一个包要发送的相对时间,通过相对时间加上当前时间点,计算出下一个包要发送的绝对时间点,在下一个时间信号点,判断当前时间是否超过此绝对时间点,若没超过,则等待下一个时间周期;若超过,发送此包并进行修正。修正时,如果当前时间和设定的一下包的发送时间的差值超过最大包时间间隔,且小于二倍时间间隔时,则当前发送的包数量加1,下一次发包的时间就是当前时间加上2倍的最大包时间间隔;修正时,如果时间差值大于二倍时间间隔,仍按两个包发送。
本实施例中最大包长记为P,计算方法是:以太网链路层MTU(Maximum Transmission Unit,最大传输单元)的大小为1500字节,TS CELL(Transport Stream Cell,传输流基本单元)的大小为188字节,设定一个UDP(User Datagram Packet,用户数据报)包的最大包长P为7个TS CELL共1316字节,加上14字节链路层头部,20字节IP头和8字节的UDP包头,总字节为1358,小于1500,所以最大包长设为1316。
最大包长P除以平均码率M,就是在这个帧组内,为最大包的时间间隔t0,当前时间T加上t0,就是下一个包要发送的相对时间t1。在后续的时钟周期到时,系统检查当前时间是否超过t1:如没有,则继续等待下一个时间周期;如果系统当前时间,超过了t1,表示发送包的时间到来,由于时间片可能存在时间差值,要加以修正。
修正时存在着以下3种情况:
当时间差值小于t0时,发送一个包,并设定下一个发送周期时间为t1+t0,这样虽然此包的发送延迟了,但下一个包的发送提前了,对前一个包的延迟加以弥补。
当时间差值大于t0,且小于2倍的t0时,发送2个包,并设定下一个发送周期时间为t1+2*t0,虽然此包的发送延迟了,但这次多发送一个包,并将第3个包的发送提前,对前一个包的延迟从两个方面加以弥补。
当最大包时间间隔大于2倍的t0时,还是发送2个包,避免一次发送多个包,造成码率变动太大。下一个发送周期时间仍设为t1+2*t0,但这个发送时间会提前到来,并且累积误差造成下一个时间周期仍然发送2个包,一次大的误差,由后续的多个时间周期内平均加以弥补,在帧组的时间间隔内平稳出流。
为了保证帧的完整性,一个包内不能包含两个帧的内容。当帧剩余字节小于1316时,也以一个包单独发送,并根据平均码率单独计算时间,当播放进入下一个帧组时,重新计算平均码率达到动态调整,进入下一下循环并采用相同的控制策略完成切片的平稳播放。
(5)到达帧结尾,剩余字节小于最大包长时,按剩余字节长度计算时间间隔,一个包发送完毕。
(6)播放的帧到达组边界时,重新计算平均码率,进入下一下循环采用上述步骤完成切片播放。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
Claims (6)
1.一种流媒体服务器保证音视频质量动态流量控制的方法,其特征在于,包括如下步骤:
(1)播放前,将发送流文件按相同的播放时间切分成一组切片,并为这些切片建立索引信息,索引信息至少包括帧长、帧间隔时间、帧类型;
(2)根据所述索引信息计算出平均码率,记录或设定组边界,帧组内的所有帧参照所述平均码率发送到客户端;
(3)流媒体服务器发送传送流包时,在包内的字节数不超过链路层最大传输单元的前提下,携带最多的发送流单元,并将此大小记为最大包长,最大包长除以平均码率,得出最大包时间间隔;
(4)初始播放时,发包的个数为1,根据最大包时间间隔确定下一个包要发送的相对时间,通过相对时间加上当前时间点,计算出下一个包要发送的绝对时间点。在下一个时间信号点,判断当前时间是否超过绝对时间点,若没超过,则等待下一个时间周期;若超过,发送下一个包,进行修正;
(5)到达帧结尾,剩余字节小于最大包长时,按剩余字节长度计算时间间隔,一个包发送完毕;
(6)播放的帧到达组边界时,重新计算平均码率,进入下一循环采用上述步骤完成切片播放。
2.如权利要求1所述的流媒体服务器保证音视频质量动态流量控制的方法,其特征在于:步骤(2)对于视频点播技术和实时视频点播,则将连续的多个帧分成一组,计算组内帧的总长度、总间隔,通过总长度除以总间隔计算出平均码率、并记录组边界。
3.如权利要求1所述的流媒体服务器保证音视频质量动态流量控制的方法,其特征在于:步骤(2)对于直播频道,计算从第0帧到直播点帧的总长度和总时间间隔,计算平均码率,并按照组内帧数量设定组边界。
4.如权利要求3所述的流媒体服务器保证音视频质量动态流量控制的方法,其特征在于:将已经录制的多个帧或者所有帧作为一组,作为后续帧的参考码率。
5.如权利要求1所述的流媒体服务器保证音视频质量动态流量控制的方法,其特征在于:步骤(4)中,修正时,如果当前时间和设定的下一包发送时间的差值超过最大包时间间隔,且小于二倍时间间隔时,则当前发送的包数量加1,下一次发包的时间就是当前时间加上2倍的最大包时间间隔。
6.如权利要求1所述的流媒体服务器保证音视频质量动态流量控制的方法,其特征在于:步骤(4)中,修正时,如果时间差值大于二倍时间间隔,仍按两个包发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110095762 CN102186119B (zh) | 2011-04-18 | 2011-04-18 | 流媒体服务器保证音视频质量动态流量控制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110095762 CN102186119B (zh) | 2011-04-18 | 2011-04-18 | 流媒体服务器保证音视频质量动态流量控制的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102186119A true CN102186119A (zh) | 2011-09-14 |
CN102186119B CN102186119B (zh) | 2013-01-02 |
Family
ID=44572178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110095762 Active CN102186119B (zh) | 2011-04-18 | 2011-04-18 | 流媒体服务器保证音视频质量动态流量控制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102186119B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546824A (zh) * | 2013-10-25 | 2014-01-29 | 中国科学院声学研究所 | 流媒体发送速率的控制方法和装置 |
CN103745737A (zh) * | 2013-12-23 | 2014-04-23 | 乐视致新电子科技(天津)有限公司 | 一种获取媒体文件总时长的方法和设备 |
CN105432067A (zh) * | 2013-03-08 | 2016-03-23 | 汤姆逊许可公司 | 使用列表驱动选择过程以改善基于视频和媒体时间的编辑的方法和设备 |
CN106162257A (zh) * | 2016-07-29 | 2016-11-23 | 南京云恩通讯科技有限公司 | 一种实时视频的自适应网络传输优化方法 |
CN109743639A (zh) * | 2018-12-25 | 2019-05-10 | 深圳市麦谷科技有限公司 | 一种自适应码率控制方法、系统、计算机设备及存储介质 |
CN109982159A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 在线播放流媒体的方法和终端 |
WO2019153930A1 (zh) * | 2018-02-11 | 2019-08-15 | 华为技术有限公司 | 实现视频业务的方法、设备、通信系统及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004004359A1 (en) * | 2002-07-01 | 2004-01-08 | E G Technology Inc. | Efficient compression and transport of video over a network |
US20040233844A1 (en) * | 2003-05-23 | 2004-11-25 | Microsoft Corporation | Bi-level and full-color video combination for video communication |
EP1521476A1 (en) * | 2003-09-30 | 2005-04-06 | Sharp Kabushiki Kaisha | Wireless video transmission |
CN101364855A (zh) * | 2008-09-22 | 2009-02-11 | 杭州华三通信技术有限公司 | 码流中数据包的发送控制方法和装置 |
CN101651827A (zh) * | 2009-07-16 | 2010-02-17 | 上海交通大学 | 屏幕编码的码率控制方法 |
-
2011
- 2011-04-18 CN CN 201110095762 patent/CN102186119B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004004359A1 (en) * | 2002-07-01 | 2004-01-08 | E G Technology Inc. | Efficient compression and transport of video over a network |
US20040233844A1 (en) * | 2003-05-23 | 2004-11-25 | Microsoft Corporation | Bi-level and full-color video combination for video communication |
EP1521476A1 (en) * | 2003-09-30 | 2005-04-06 | Sharp Kabushiki Kaisha | Wireless video transmission |
CN101364855A (zh) * | 2008-09-22 | 2009-02-11 | 杭州华三通信技术有限公司 | 码流中数据包的发送控制方法和装置 |
CN101651827A (zh) * | 2009-07-16 | 2010-02-17 | 上海交通大学 | 屏幕编码的码率控制方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105432067A (zh) * | 2013-03-08 | 2016-03-23 | 汤姆逊许可公司 | 使用列表驱动选择过程以改善基于视频和媒体时间的编辑的方法和设备 |
CN103546824A (zh) * | 2013-10-25 | 2014-01-29 | 中国科学院声学研究所 | 流媒体发送速率的控制方法和装置 |
CN103745737A (zh) * | 2013-12-23 | 2014-04-23 | 乐视致新电子科技(天津)有限公司 | 一种获取媒体文件总时长的方法和设备 |
CN106162257A (zh) * | 2016-07-29 | 2016-11-23 | 南京云恩通讯科技有限公司 | 一种实时视频的自适应网络传输优化方法 |
CN106162257B (zh) * | 2016-07-29 | 2019-05-03 | 南京云恩通讯科技有限公司 | 一种实时视频的自适应网络传输优化方法 |
CN109982159A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 在线播放流媒体的方法和终端 |
CN109982159B (zh) * | 2017-12-27 | 2021-10-22 | 华为技术有限公司 | 在线播放流媒体的方法和终端 |
WO2019153930A1 (zh) * | 2018-02-11 | 2019-08-15 | 华为技术有限公司 | 实现视频业务的方法、设备、通信系统及计算机可读存储介质 |
CN110166804A (zh) * | 2018-02-11 | 2019-08-23 | 华为技术有限公司 | 实现视频业务的方法、设备、通信系统及计算机可读存储介质 |
CN110166804B (zh) * | 2018-02-11 | 2021-12-03 | 华为技术有限公司 | 实现视频业务的方法、设备、通信系统及计算机可读存储介质 |
CN109743639A (zh) * | 2018-12-25 | 2019-05-10 | 深圳市麦谷科技有限公司 | 一种自适应码率控制方法、系统、计算机设备及存储介质 |
CN109743639B (zh) * | 2018-12-25 | 2021-11-09 | 深圳市麦谷科技有限公司 | 一种自适应码率控制方法、系统、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102186119B (zh) | 2013-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102186119B (zh) | 流媒体服务器保证音视频质量动态流量控制的方法 | |
RU2369040C2 (ru) | Буферизация при потоковой передаче данных | |
US9565482B1 (en) | Adaptive profile switching system and method for media streaming over IP networks | |
JP5847577B2 (ja) | より低いレベルのパケット構造から導かれる記号識別子を用いた放送チャネル上の高品質ストリーム保護 | |
JP5075536B2 (ja) | Fec送信処理装置、ならびにfec送信処理のための方法およびプログラム | |
US20200029130A1 (en) | Method and apparatus for configuring content in a broadcast system | |
US7539187B2 (en) | System and method for low-latency content-sensitive forward error correction | |
CN101212280B (zh) | 数据通信系统,数据发射设备/方法和确定分组大小及冗余的方法 | |
US9781488B2 (en) | Controlled adaptive rate switching system and method for media streaming over IP networks | |
US8873590B2 (en) | Apparatus and method for correcting jitter | |
KR101180540B1 (ko) | 스트리밍 서비스 송/수신 장치 및 방법 | |
KR20130114597A (ko) | 스트리밍 미디어 전달 컴포지트 | |
CN105763942A (zh) | 一种iptv机顶盒vmos值的计算方法 | |
US20150236967A1 (en) | Media stream rate reconstruction system and method | |
US20180091406A1 (en) | User defined protocol for self correcting zero-added-jitter transmission of layer-2 datagrams across one-way lossy packet-switched network links | |
JP3856135B2 (ja) | ストリーム変換/送出装置 | |
EP2524502A1 (en) | Method and apparatus for processing transport streams | |
EP2337257A1 (en) | Method and apparatus of sending encoded multimedia digital data taking into account sending deadlines | |
KR101700370B1 (ko) | 지터 보정 방법 및 장치 | |
Kuo et al. | Prediction-based loss recovery for frame-level streaming video | |
GB2480819A (en) | Error resilience for multimedia transmission | |
CN104041061A (zh) | 媒体流处置 | |
Jiang et al. | OPRSFEC: A middleware of packet loss recovery in live multicast smart TV systems | |
Kuipers et al. | Robust Video Calls for Emergency Services over IP Based Networks |
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 |