CN110121089A - 一种rtmp直播码率自适应方法 - Google Patents

一种rtmp直播码率自适应方法 Download PDF

Info

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
Application number
CN201910496870.5A
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.)
Hangzhou Miluoxing Technology (group) Co Ltd
Original Assignee
Hangzhou Miluoxing Technology (group) 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 Hangzhou Miluoxing Technology (group) Co Ltd filed Critical Hangzhou Miluoxing Technology (group) Co Ltd
Priority to CN201910496870.5A priority Critical patent/CN110121089A/zh
Publication of CN110121089A publication Critical patent/CN110121089A/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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/262Content 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/26208Content 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
    • 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

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直播码率自适应方法。
为了实现上述目的,本发明采用以下技术方案:
一种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。
CN201910496870.5A 2019-06-10 2019-06-10 一种rtmp直播码率自适应方法 Pending CN110121089A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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