CN110121089A - 一种rtmp直播码率自适应方法 - Google Patents
一种rtmp直播码率自适应方法 Download PDFInfo
- Publication number
- CN110121089A CN110121089A CN201910496870.5A CN201910496870A CN110121089A CN 110121089 A CN110121089 A CN 110121089A CN 201910496870 A CN201910496870 A CN 201910496870A CN 110121089 A CN110121089 A CN 110121089A
- Authority
- CN
- China
- Prior art keywords
- video frame
- buffering queue
- bufcount
- frame number
- currently transmitted
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel 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/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种RTMP直播码率自适应方法。它具体包括如下步骤:编码线程根据帧率定时编码视频帧放到发送缓冲队列;发送线程不停的从发送缓冲队列获取数据包发送,发送一帧就从发送缓存队列删除一帧;根据发送缓冲队列的视频帧数情况来判断网络状况,并设定视频帧数参数BufCount_min,BufCount_max;编码线程把编好的视频帧放到发送缓冲队列后会获得当前发送缓冲队列的视频帧数;在当前发送缓冲队列的视频帧数达到BufCount_max时,降低视频编码码率;在当前发送缓冲队列的视频帧数小于BufCount_min时,增加视频编码码率;若当前发送缓冲队列的视频帧数在BufCount_min和BufCount_max之间,则保持当前码率。本发明的有益效果是:根据网络状况,快速调整视频的编码码率,以适应不同的网络状况,达到最优的直播效果。
Description
技术领域
本发明涉及互联网相关技术领域,尤其是指一种RTMP直播码率自适应方法。
背景技术
现有RTMP直播技术适合上行网速比较恒定的情况,比如固网,对于移动设备的直播,设备位置的移动对网络状况影响较大,没有码率自适应技术,无论网络状况如何,都是用预先设置的码率发送数据表,导致直播卡顿比较严重,严重影响观看体验。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种隔热效果好且隔音材料寿命长及隔音效果好的RTMP直播码率自适应方法。
为了实现上述目的,本发明采用以下技术方案:
一种RTMP直播码率自适应方法,具体包括如下步骤:
(1)编码线程根据帧率定时编码视频帧放到发送缓冲队列;
(2)发送线程不停的从发送缓冲队列获取数据包发送,发送一帧就从发送缓存队列删除一帧;
(3)根据发送缓冲队列的视频帧数情况来判断网络状况,并设定视频帧数参数BufCount_min,BufCount_max;
(4)编码线程把编好的视频帧放到发送缓冲队列后会获得当前发送缓冲队列的视频帧数;
(5)在当前发送缓冲队列的视频帧数达到BufCount_max时,降低视频编码码率;在当前发送缓冲队列的视频帧数小于BufCount_min时,增加视频编码码率;若当前发送缓冲队列的视频帧数在BufCount_min和BufCount_max之间,则保持当前码率。
本发明的方法是:根据网络状况,快速调整视频的编码码率,以适应不同的网络状况,RTMP协议没有网络状况指示,我们根据发送缓冲队列的视频帧数堆积情况来初略估计网络状况,堆积越多说明网络越差,算法核心:设定参数BufCount_min和BufCount_max,在缓冲帧数达到BufCount_max时降低视频编码码率,在缓冲帧数小于BufCount_min时增加编码码率,若缓冲帧数在BufCount_min和BufCount_max之间,保持当前码率;BufCount_min和BufCount_max可以根据情况调整达到最优的直播效果。本发明在网络差的情况下降低码率,保持直播流畅,在网络变好后,提升码率提高视频质量。
作为优选,在步骤(3)中,网络好的时候,发送线程从发送缓冲队列取走视频帧的速度比编码线程放入发送缓冲队列的速度快,那么发送缓冲队列视频帧数在0~2帧之间波动;但是网络差时,发送线程从发送缓冲队列取走视频帧的速度慢于编码线程编码视频帧的速度,发送缓冲队列里视频帧的数量就会迅速堆积,即通过发送缓冲队列视频帧数量知道网络状况。
作为优选,在步骤(4)中,每过3-5秒钟检测一次发送缓冲队列的视频帧数。
作为优选,在步骤(5)中,如果当前发送缓冲队列的视频帧数大于BufCount_max时,编码线程重设编码器参数,把编码码率降低100kbps到150kbps,每过3-5秒钟后再次检测当前发送缓冲队列的视频帧数仍旧大于BufCount_max时,则再次将编码码率降低100kbps到150kbps,直到当前发送缓冲队列的视频帧数小于等于BufCount_max。
作为优选,在步骤(5)中,如果当前发送缓冲队列的视频帧数低于BufCount_min时,编码线程重设编码器参数,把编码码率提升10kbps到15kbps,每过3-5秒钟后再次检测当前发送缓冲队列的视频帧数仍旧低于BufCount_min时,则再次将编码码率提升10kbps到15kbps,直到当前发送缓冲队列的视频帧数大于等于BufCount_min。
本发明的有益效果是:根据网络状况,快速调整视频的编码码率,以适应不同的网络状况;在网络差的情况下降低码率,保持直播流畅;在网络变好后,提升码率提高视频质量;根据情况调整达到最优的直播效果。
附图说明
图1是本发明一种实施例的示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
一种RTMP直播码率自适应方法,具体包括如下步骤:
(1)编码线程根据帧率定时编码视频帧放到发送缓冲队列;
(2)发送线程不停的从发送缓冲队列获取数据包发送,发送一帧就从发送缓存队列删除一帧;
(3)根据发送缓冲队列的视频帧数情况来判断网络状况,并设定视频帧数参数BufCount_min,BufCount_max;网络好的时候,发送线程从发送缓冲队列取走视频帧的速度比编码线程放入发送缓冲队列的速度快,那么发送缓冲队列视频帧数在0~2帧之间波动;但是网络差时,发送线程从发送缓冲队列取走视频帧的速度慢于编码线程编码视频帧的速度,发送缓冲队列里视频帧的数量就会迅速堆积,即通过发送缓冲队列视频帧数量知道网络状况;
(4)编码线程把编好的视频帧放到发送缓冲队列后会获得当前发送缓冲队列的视频帧数;每过3-5秒钟检测一次发送缓冲队列的视频帧数;
(5)在当前发送缓冲队列的视频帧数达到BufCount_max时,降低视频编码码率;具体为:如果当前发送缓冲队列的视频帧数大于BufCount_max时,编码线程重设编码器参数,把编码码率降低100kbps到150kbps,每过3-5秒钟后再次检测当前发送缓冲队列的视频帧数仍旧大于BufCount_max时,则再次将编码码率降低100kbps到150kbps,直到当前发送缓冲队列的视频帧数小于等于BufCount_max;
在当前发送缓冲队列的视频帧数小于BufCount_min时,增加视频编码码率;具体为:如果当前发送缓冲队列的视频帧数低于BufCount_min时,编码线程重设编码器参数,把编码码率提升10kbps到15kbps,每过3-5秒钟后再次检测当前发送缓冲队列的视频帧数仍旧低于BufCount_min时,则再次将编码码率提升10kbps到15kbps,直到当前发送缓冲队列的视频帧数大于等于BufCount_min;
若当前发送缓冲队列的视频帧数在BufCount_min和BufCount_max之间,则保持当前码率。
如图1所示,实际使用中,设定BufCount_min为3,BufCount_max为60,编码线程把编好的视频帧放到发送缓冲队列后会获得当前发送缓冲队列的视频帧数,每过3秒钟检测一次发送缓冲队列帧数,如果大于60帧,编码线程重设编码器参数,把编码码率降低100kbps,3秒后再次检测发送缓冲队列帧数仍旧大于60帧,则再次将编码码率降低100kbps,直到发送缓冲队列帧数小于60。随着编码码率降低,网络发送速度逐渐快于编码产生数据的速度,发送缓冲队列里视频帧数逐步减少,当发送缓冲队列帧数低于3帧时,认为网络状况较好,可提升编码码率从而提升视频质量,每次提升10k以避免反复波动,让发送缓冲队列缓冲视频帧数始终大于3帧且小于60帧,取得良好的流畅度和视频质量。
Claims (5)
1.一种RTMP直播码率自适应方法,其特征是,具体包括如下步骤:
(1)编码线程根据帧率定时编码视频帧放到发送缓冲队列;
(2)发送线程不停的从发送缓冲队列获取数据包发送,发送一帧就从发送缓存队列删除一帧;
(3)根据发送缓冲队列的视频帧数情况来判断网络状况,并设定视频帧数参数BufCount_min,BufCount_max;
(4)编码线程把编好的视频帧放到发送缓冲队列后会获得当前发送缓冲队列的视频帧数;
(5)在当前发送缓冲队列的视频帧数达到BufCount_max时,降低视频编码码率;在当前发送缓冲队列的视频帧数小于BufCount_min时,增加视频编码码率;若当前发送缓冲队列的视频帧数在BufCount_min和BufCount_max之间,则保持当前码率。
2.根据权利要求1所述的一种RTMP直播码率自适应方法,其特征是,在步骤(3)中,网络好的时候,发送线程从发送缓冲队列取走视频帧的速度比编码线程放入发送缓冲队列的速度快,那么发送缓冲队列视频帧数在0~2帧之间波动;但是网络差时,发送线程从发送缓冲队列取走视频帧的速度慢于编码线程编码视频帧的速度,发送缓冲队列里视频帧的数量就会迅速堆积,即通过发送缓冲队列视频帧数量知道网络状况。
3.根据权利要求1或2所述的一种RTMP直播码率自适应方法,其特征是,在步骤(4)中,每过3-5秒钟检测一次发送缓冲队列的视频帧数。
4.根据权利要求3所述的一种RTMP直播码率自适应方法,其特征是,在步骤(5)中,如果当前发送缓冲队列的视频帧数大于BufCount_max时,编码线程重设编码器参数,把编码码率降低100kbps到150kbps,每过3-5秒钟后再次检测当前发送缓冲队列的视频帧数仍旧大于BufCount_max时,则再次将编码码率降低100kbps到150kbps,直到当前发送缓冲队列的视频帧数小于等于BufCount_max。
5.根据权利要求3所述的一种RTMP直播码率自适应方法,其特征是,在步骤(5)中,如果当前发送缓冲队列的视频帧数低于BufCount_min时,编码线程重设编码器参数,把编码码率提升10kbps到15kbps,每过3-5秒钟后再次检测当前发送缓冲队列的视频帧数仍旧低于BufCount_min时,则再次将编码码率提升10kbps到15kbps,直到当前发送缓冲队列的视频帧数大于等于BufCount_min。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910496870.5A CN110121089A (zh) | 2019-06-10 | 2019-06-10 | 一种rtmp直播码率自适应方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910496870.5A CN110121089A (zh) | 2019-06-10 | 2019-06-10 | 一种rtmp直播码率自适应方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110121089A true CN110121089A (zh) | 2019-08-13 |
Family
ID=67524045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910496870.5A Pending CN110121089A (zh) | 2019-06-10 | 2019-06-10 | 一种rtmp直播码率自适应方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110121089A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110677688A (zh) * | 2019-10-31 | 2020-01-10 | 重庆唐码传媒有限公司 | 流媒体图像推送系统 |
CN110784744A (zh) * | 2019-10-31 | 2020-02-11 | 重庆唐码传媒有限公司 | 低延时图像采集方法 |
CN111447459A (zh) * | 2020-05-14 | 2020-07-24 | 杭州当虹科技股份有限公司 | 一种rtmp自适应码率实现方法 |
CN111586433A (zh) * | 2020-06-05 | 2020-08-25 | 广州繁星互娱信息科技有限公司 | 码率调整方法、装置、设备及存储介质 |
CN111866533A (zh) * | 2020-07-13 | 2020-10-30 | 网宿科技股份有限公司 | 一种直播转码方法及装置 |
CN111954007A (zh) * | 2020-07-14 | 2020-11-17 | 烽火通信科技股份有限公司 | Udp直播中vbr视频快速平滑发送方法与装置 |
WO2021109892A1 (zh) * | 2019-12-03 | 2021-06-10 | 深圳市道通智能航空技术股份有限公司 | 一种视频数据的传输方法及终端 |
CN114245131A (zh) * | 2021-12-18 | 2022-03-25 | 杭州视洞科技有限公司 | 一种基于缓冲队列动态调整视频码率的优化算法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771492A (zh) * | 2008-12-29 | 2010-07-07 | 华为技术有限公司 | 调整流媒体码率的方法和装置 |
US20130101021A1 (en) * | 2004-09-08 | 2013-04-25 | Priyan Gunatilake | Method and apparatus for transmitting a coded video signal |
-
2019
- 2019-06-10 CN CN201910496870.5A patent/CN110121089A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130101021A1 (en) * | 2004-09-08 | 2013-04-25 | Priyan Gunatilake | Method and apparatus for transmitting a coded video signal |
CN101771492A (zh) * | 2008-12-29 | 2010-07-07 | 华为技术有限公司 | 调整流媒体码率的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110677688A (zh) * | 2019-10-31 | 2020-01-10 | 重庆唐码传媒有限公司 | 流媒体图像推送系统 |
CN110784744A (zh) * | 2019-10-31 | 2020-02-11 | 重庆唐码传媒有限公司 | 低延时图像采集方法 |
WO2021109892A1 (zh) * | 2019-12-03 | 2021-06-10 | 深圳市道通智能航空技术股份有限公司 | 一种视频数据的传输方法及终端 |
CN111447459A (zh) * | 2020-05-14 | 2020-07-24 | 杭州当虹科技股份有限公司 | 一种rtmp自适应码率实现方法 |
CN111586433A (zh) * | 2020-06-05 | 2020-08-25 | 广州繁星互娱信息科技有限公司 | 码率调整方法、装置、设备及存储介质 |
CN111586433B (zh) * | 2020-06-05 | 2021-09-21 | 广州繁星互娱信息科技有限公司 | 码率调整方法、装置、设备及存储介质 |
CN111866533A (zh) * | 2020-07-13 | 2020-10-30 | 网宿科技股份有限公司 | 一种直播转码方法及装置 |
CN111954007A (zh) * | 2020-07-14 | 2020-11-17 | 烽火通信科技股份有限公司 | Udp直播中vbr视频快速平滑发送方法与装置 |
CN114245131A (zh) * | 2021-12-18 | 2022-03-25 | 杭州视洞科技有限公司 | 一种基于缓冲队列动态调整视频码率的优化算法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110121089A (zh) | 一种rtmp直播码率自适应方法 | |
US11924263B2 (en) | Methods and devices for efficient adaptive bitrate streaming | |
CN101909060B (zh) | 一种适用于移动视频实时流媒体传输的Qos控制方法 | |
EP1938610B1 (en) | Method and apparatus for adaptive encoding of real-time information in wireless networks | |
CN105323604B (zh) | 一种QoE驱动的HTTP流媒体点播缓冲区控制方法 | |
CN102098547A (zh) | 一种嵌入式网络自适应/实时高清视频的传输方法 | |
CN110602548B (zh) | 一种超高清视频高质量无线传输的方法和系统 | |
CN105357591A (zh) | 一种自适应码率视频直播的QoE监控和优化方法 | |
CN102325274A (zh) | 一种自适应网络带宽的视频流传输控制方法 | |
CN104009819A (zh) | 基于分层编码的抗丢包实时通信方法、系统及相关设备 | |
CN101867802A (zh) | 一种基于编码器和缓存的两级码率控制方法 | |
CN102427532A (zh) | 一种受限带宽下的多路视频自适应编码传输方法及其传输系统 | |
CN108965807B (zh) | 实时视频的播放控制方法、装置、终端及存储介质 | |
CN103780907A (zh) | 一种视频数据流量整形的方法和装置 | |
CN104253967A (zh) | 一种实时视频通信传输控制方法 | |
CN110099250A (zh) | 一种监控视频质量判断方法及播放控制装置 | |
JP2021114763A5 (zh) | ||
CN104917688A (zh) | 一种流媒体网关的码率控制方法 | |
CN115604507A (zh) | 基于多站点协同的视频传输装置 | |
CN1588909A (zh) | 一种控制网络数字电视节目组播发送速率的方法 | |
CN102201887A (zh) | 控制套接字传输速率的方法和装置 | |
CN105306970A (zh) | 一种流媒体直播发送速度的控制方法及装置 | |
CN202261655U (zh) | 受限带宽下的多路视频自适应编码传输系统 | |
CN114866859B (zh) | 基于时间戳和丢包检测的实时视频传输动态延时控制系统 | |
CN109413442A (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: 20190813 |
|
RJ01 | Rejection of invention patent application after publication |