CN107026856A - 一种网络推流质量的优化方法及优化*** - Google Patents
一种网络推流质量的优化方法及优化*** Download PDFInfo
- Publication number
- CN107026856A CN107026856A CN201710199908.3A CN201710199908A CN107026856A CN 107026856 A CN107026856 A CN 107026856A CN 201710199908 A CN201710199908 A CN 201710199908A CN 107026856 A CN107026856 A CN 107026856A
- Authority
- CN
- China
- Prior art keywords
- code check
- current
- adjustment
- frame
- next cycle
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 230000007423 decrease Effects 0.000 claims description 34
- 230000009747 swallowing Effects 0.000 claims description 13
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 230000003139 buffering effect Effects 0.000 claims description 9
- 241000167880 Hirundinidae Species 0.000 claims description 4
- 238000000465 moulding Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/4061—Push-to services, e.g. push-to-talk or push-to-video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种网络推流质量的优化方法及优化***,其中,所述方法包括:按照预设周期采集推流的特征信息;根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整,并将调整后的码率作为目标码率反馈至编码器;根据当前缓冲区数据吞吐量,对下一周期的帧率进行调整,并根据调整后的帧率确定两帧之间的时间间隔;基于确定的所述时间间隔对进入编码器的音视频数据进行过滤,以生成符合调整后的帧率的音视频数据;按照调整后的码率和调整后的帧率进行音视频数据的编码及传输。本申请提供的网络推流质量的优化方法及优化***,能够平滑地调整推流的码率和帧率。
Description
技术领域
本申请涉及音视频处理技术领域,特别涉及一种网络推流质量的优化方法及优化***。
背景技术
近年来,移动视频直播越来越火爆,在娱乐、教育、游戏电竞、体育等领域都得到广泛应用,各种直播产品竞争激烈,而能够提供优秀用户体验的直播产品和服务终将在这场竞争中脱颖而出。
影响直播观看体验的因素总体而言分为两个维度,一是画面清晰度(即画质),二是流畅度。画质与码率和分辨率正相关,流畅度与帧率和数据带宽正相关。当网络的带宽一定的情况下,流畅度与码率呈一种负相关的关系,即当码率超出实际网络数据吞吐率时,流畅度就会降低。理想情况下,当主播端与观众端都有无限带宽时,只需要选择一个直播设备所能承受的最佳画质进行推流,便能获得高清流畅的优质观看体验。然而考虑到直播者(即主播)所处的网络环境千差万别,从直播端到推流服务器的链路上经常发生丢包、抖动和延迟等情况,导致直播推流不畅,造成观看的体验下降。在这种情况下,必定要权衡画质与流畅度这两个维度来维持较好的观看体验,大量用户反馈表明,使用较低画质和高流畅度,与高画质和频繁卡顿的直播相比,前者能带来更好的用户观看体验。此时,一种能够根据直播端的网络质量来动态调节推流质量的技术方案显得尤为必要。
目前直播推流的通用协议标准为RTMP(Real Time Messaging Protocol,实时消息传输协议)协议,是基于TCP进行传输,其本身是面向连接、可靠的传输层协议,内部实现了拥塞控制策略。在高丢包率的网络环境中,TCP的自动重传策略会占用很大一部分带宽,从而导致单位时间内网络数据吞吐量减少,造成播放端的卡顿。当前市面上应对弱网推流的方案主要有以下三种:
由主播根据观众反馈自行选择推流的清晰度,即推流端不做自动判断网络处理;
在直播开始时判断网络质量,若检测到较差的网络条件,则直接采用一个较低的推流配置开始直播,并在整个直播过程中始终采用该配置;
将推流质量配置预设高低两个档次,在直播过程中根据网络状况在这两个档次间来回切换。
以上方案能在一定程度上缓解由网络波动或弱网所引发的直播端推流不流畅问题,但也都分别存在一系列的缺陷,具体分析如下:
依靠主播根据观众反馈来选择推流清晰度,本身太过于依赖主播的经验,并且观众的反馈信息无法准确判断直播卡顿的根源,主播端的网络不佳或者观众自身的网络存在问题均可能造成直播体验的负面反馈;
未考虑到网络波动的因素,可能直播开始时网络处于波动状态,导致采用低画质进行推流,而后直播过程中网络恢复稳定,直播却只能始终采用低画质,无法达到观看体验的最优化。另外,可能一开始采用高画质推流,直播过程中网络波动,也将造成频繁卡顿;
采用高低两档画质配置根据网络情况来回切换,会带来的两个问题。问题一是播放端能够明显感知画质的抖动,二是频繁从低画质切换到高画质时,可能瞬时增大网络负担,使发送的码率超过实际带宽,造成卡顿,总而言之无法做到平滑切换。
应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
发明内容
本申请实施方式的目的在于提供一种网络推流质量的优化方法及优化***,能够平滑地调整推流的码率和帧率。
为实现上述目的,本申请一方面提供一种网络推流质量的优化方法,所述方法包括:按照预设周期采集推流的特征信息,所述特征信息包括平均码率、平均帧率、缓冲区数据吞吐量、每帧TCP平均发送时长;根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整,并将调整后的码率作为目标码率反馈至编码器;根据当前缓冲区数据吞吐量,对下一周期的帧率进行调整,并根据调整后的帧率确定两帧之间的时间间隔;基于确定的所述时间间隔对进入编码器的音视频数据进行过滤,以生成符合调整后的帧率的音视频数据;按照调整后的码率和调整后的帧率进行音视频数据的编码及传输。
进一步地,根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整具体包括:当所述当前每帧TCP平均发送时长大于第一预设风险值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率;当所述当前每帧TCP平均发送时长小于或者等于所述第一预设风险值时,判断所述当前每帧TCP平均发送时长是否大于第二预设风险值;若所述当前每帧TCP平均发送时长大于第二预设风险值并且当前缓冲区的数据占有率大于预设阈值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率。
进一步地,所述方法还包括:判断上一次进行的码率调整是否为下降码率,若是,将所述预设码率步长增加至预设值,并按照增加后的预设值下降当前码率。
进一步地,根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整具体包括:判断当前缓冲区的吐出数据量与吞入数据量之间的关系,当吐出数据量大于或者等于吞入数据量时,将计数器的计数值加一;当吐出数据量小于吞入数据量时,将计数器的计数值减一;根据当前计数器中计数值的大小,调整下一周期的码率。
进一步地,根据当前计数器中计数值的大小,调整下一周期的码率具体包括:当所述计数器中的计数值小于第一判定阈值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率,同时将所述计数器的计数值归零;当所述计数器中的计数值大于第二判定阈值时,按照预设码率步长提高当前码率,并将提高后的码率作为下一周期的码率,同时将所述计数器的计数值归零。
进一步地,所述方法还包括:判断上一次进行的码率调整是否为下降码率,若是,将所述预设码率步长增加至预设值,并按照增加后的预设值下降当前码率;判断上一次进行的码率调整是否为提高码率,若是,将所述预设码率步长增加至预设值,并按照增加后的预设值提高当前码率。
进一步地,所述推流按照下述方式生成:将预先采集的音视频数据经过编码器进行编码,并将编码后的音视频数据经过封包后通过实时消息传输协议RTMP进行传输,以生成所述推流。
为实现上述目的,本申请实施方式另一方面还提供一种网络推流质量的优化***,所述***包括:流数据收集控制模块,用于按照预设周期采集推流的特征信息,所述特征信息包括平均码率、平均帧率、缓冲区数据吞吐量、每帧TCP平均发送时长;自适应码率控制模块,用于根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整,并将调整后的码率作为目标码率反馈至编码器;动态帧率控制模块,用于根据当前缓冲区数据吞吐量,对下一周期的帧率进行调整,并根据调整后的帧率确定两帧之间的时间间隔;基于确定的所述时间间隔对进入编码器的音视频数据进行过滤,以生成符合调整后的帧率的音视频数据;传输控制模块,用于按照调整后的码率和调整后的帧率进行音视频数据的编码及传输。
进一步地,所述自适应码率控制模块具体包括:第一判断单元,用于当所述当前每帧TCP平均发送时长大于第一预设风险值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率;第二判断单元,用于当所述当前每帧TCP平均发送时长小于或者等于所述第一预设风险值时,判断所述当前每帧TCP平均发送时长是否大于第二预设风险值;第三判断单元,用于若所述当前每帧TCP平均发送时长大于第二预设风险值并且当前缓冲区的数据占有率大于预设阈值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率。
进一步地,所述自适应码率控制模块具体包括:吞吐量判断单元,用于判断当前缓冲区的吐出数据量与吞入数据量之间的关系,当吐出数据量大于或者等于吞入数据量时,将计数器的计数值加一;当吐出数据量小于吞入数据量时,将计数器的计数值减一;码率调整单元,用于根据当前计数器中计数值的大小,调整下一周期的码率。
本发明实施方式利用码率与帧率调整相互配合作用,一方面有效控制网络波动情况下的音视频数据发送量,缓解网络拥塞,同时又能给播放端带来流畅的观看体验;另一方面在网络质量恢复时能够确保音视频的码率帧率是以设定的最优质量配置进行推流,并且能使不同码率帧率配置切换时以一种更为平滑的方式进行,不会给观看端带来画质波动的突兀感。
参照后文的说明和附图,详细公开了本申请的特定实施方式,指明了本申请的原理可以被采用的方式。应该理解,本申请的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本申请的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
所包括的附图用来提供对本申请实施方式的进一步的理解,其构成了说明书的一部分,用于例示本申请的实施方式,并与文字描述一起来阐释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施方式提供的一种网络推流质量的优化方法的流程图;
图2为本申请实施方式中网络推流质量优化的原理图;
图3为本申请实施方式中码率调整的流程图;
图4为本申请实施方式提供的一种网络推流质量的优化***的功能模块图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施方式,都应当属于本申请保护的范围。
图1为本申请实施方式提供的一种网络推流质量的优化方法的流程图。虽然下文描述流程包括以特定顺序出现的多个操作,但是应该清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。如图1所示,所述方法可以包括:
步骤S1:按照预设周期采集推流的特征信息,所述特征信息包括平均码率、平均帧率、缓冲区数据吞吐量、每帧TCP平均发送时长。
在本实施方式种,可以对当前***的推流进行一段时间的数据采集,以获取推流的历史数据。具体地,请参阅图2,源音视频文件通过音视频采集模块可以进行采样操作,从而能够从源音视频文件中采集音视频数据。在实际应用过程中,音视频采集模块可以按照预设采样周期进行音视频数据采集。
在本实施方式种,采集的音视频数据可以进入编码器,以编码器中设置的编码格式和码率进行编码。编码后的音视频帧在经过封包后,便可以通过传输控制模块中的实时消息传输协议(Real Time Messaging Protocol,RTMP)进行传输,以生成所述推流。即将传输的音视频数据可以暂存于所述传输控制模块中的发送缓冲区内,这样,可以保证音视频数据能够实时传输。
在本实施方式中,可以通过流数据收集控制模块按照预设周期采集推流的特征信息,所述特征信息可以包括平均码率、平均帧率、缓冲区数据吞吐量、每帧TCP平均发送时长。
步骤S2:根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整,并将调整后的码率作为目标码率反馈至编码器。
在本实施方式中,为了对推流质量进行优化,可以对采集的当前特征信息进行分析,从而能够预测下一个周期是否需要调整推流的码率和帧率。具体地,可以根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整。请参阅图3,当所述当前每帧TCP平均发送时长大于第一预设风险值时,则表明可能即将发生缓冲区内丢帧的情况,此时可以按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率。
当所述当前每帧TCP平均发送时长小于或者等于所述第一预设风险值时,可以继续判断所述当前每帧TCP平均发送时长是否大于第二预设风险值。其中,所述第二预设风险值可以小于所述第一预设风险值。
若所述当前每帧TCP平均发送时长大于第二预设风险值并且当前缓冲区的数据占有率大于预设阈值时,同样可能发生缓冲区内丢帧的情况,此时可以按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率。
在本实施方式中,对于每个周期内的码率均可以进行分析,并实时预测下一个周期的码率。在实际应用过程中,当网络发生波动时,可能会导致连续几个周期的码率均需要下降。在这种情况下,为了能够减少码率下降的次数,可以相应地增加码率下降的速率。具体地,可以判断上一次进行的码率调整是否为下降码率,若是,表明当前的网络条件处于码率连续下降的情况,这样便可以将所述预设码率步长增加至预设值,从而提高码率下降的速度,并按照增加后的预设值下降当前码率。
在本实施方式中,可以对缓冲区数据吞吐量进行分析,以确定是否需要调整下一个周期的码率。具体地,可以判断当前缓冲区的吐出数据量与吞入数据量之间的关系,当吐出数据量大于或者等于吞入数据量时,可以将计数器的计数值加一;当吐出数据量小于吞入数据量时,可以将计数器的计数值减一。这样,根据计数器中计数值的大小,便可以获知之前几个周期内吐出数据量与吞入数据量的大小关系,从而可以根据当前计数器中计数值的大小,调整下一周期的码率。
具体地,当所述计数器中的计数值小于第一判定阈值时,则说明缓冲区连续几次都是数据吞入量大于数据吐出量。例如,所述第一判定阈值可以是-3,这样,可以表明缓冲区连续3次以上都是数据吞入量大于数据吐出量。这种情况下会产生丢帧的风险,因此可以按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率,同时将所述计数器的计数值归零。
当所述计数器中的计数值大于第二判定阈值时,则说明缓冲区连续几次都是数据吐出量大于数据吞入量。例如,所述第二判定阈值可以是3,这样,可以表明缓冲区连续3次以上都是数据吐出量大于数据吞入量。这种情况下表明网络状态良好,带宽足够,因此可以按照预设码率步长提高当前码率,并将提高后的码率作为下一周期的码率,同时将所述计数器的计数值归零。
在本实施方式中,在对缓冲区数据吞吐量进行判断时,可以判断上一次进行的码率调整是否为下降码率,若是,则表明当前的网络条件处于码率连续下降的情况,于是可以将所述预设码率步长增加至预设值,以提高码率下降的速率,并按照增加后的预设值下降当前码率;
此外,还可以判断上一次进行的码率调整是否为提高码率,若是,则表明当前的网络条件处于码率连续上升的情况,于是可以将所述预设码率步长增加至预设值,以提高码率上升的速率,并按照增加后的预设值提高当前码率。
这样,通过对当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量进行分析,从而可以实时预测下一个周期的传输码率,能够实现码率的灵活切换。由于是每个周期进行分析,也避免了码率切换过于跳跃,保证用户的流畅观看体验。
步骤S3:根据当前缓冲区数据吞吐量,对下一周期的帧率进行调整,并根据调整后的帧率确定两帧之间的时间间隔;基于确定的所述时间间隔对进入编码器的音视频数据进行过滤,以生成符合调整后的帧率的音视频数据。
在本实施方式中,可以采用与步骤S2中类似的方式,对当前缓冲区数据吞吐量进行分析,从而可以对下一周期的帧率进行调整。调整后的帧率可以表明两帧之间的时间间隔,通过该时间间隔,从而可以对进入编码器的音视频数据进行过滤,以生成符合调整后的帧率的音视频数据。
需要说明的是,在本实施方式中,码率调整的过程可以在自适应码率控制模块中进行,帧率调整的过程可以在动态帧率控制模块中进行。在各种对比过程中,各个比较的阈值可以根据TCP发送时长预测算子或者缓冲区大小预测算子进行确定。所述自适应码率控制模块和所述动态帧率控制模块可以由自适应流质量控制模块同一管理。以上所述的自适应码率模块和动态帧率控制模块可单独开启或关闭,使用者可根据自身的需求来决定该技术方案的应用形态。如果使用场景要求尽量保持较高画质推流,则可使用动态帧率控制模块,优先调节帧率来控制单位时间内进入编码器的数据量,从而控制传输数据量;反之对帧率要求较高的场景则可优先使用自适应码率控制模块。
步骤S4:按照调整后的码率和调整后的帧率进行音视频数据的编码及传输。
在本实施方式种,调整后的帧率可以对音视频采集模块采集的音视频数据进行调节,调整后的码率可以应用于编码器中,对编码器中处理的数据进行调节。这样,按照调整后的码率和调整后的帧率,便可以进行音视频数据的编码及传输。
请参阅图4,本申请实施方式还提供一种网络推流质量的优化***,所述***包括:
流数据收集控制模块100,用于按照预设周期采集推流的特征信息,所述特征信息包括平均码率、平均帧率、缓冲区数据吞吐量、每帧TCP平均发送时长;
自适应码率控制模块200,用于根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整,并将调整后的码率作为目标码率反馈至编码器;
动态帧率控制模块300,用于根据当前缓冲区数据吞吐量,对下一周期的帧率进行调整,并根据调整后的帧率确定两帧之间的时间间隔;基于确定的所述时间间隔对进入编码器的音视频数据进行过滤,以生成符合调整后的帧率的音视频数据;
传输控制模块400,用于按照调整后的码率和调整后的帧率进行音视频数据的编码及传输。
在本申请实施方式中,所述自适应码率控制模块200具体包括:
第一判断单元,用于当所述当前每帧TCP平均发送时长大于第一预设风险值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率;
第二判断单元,用于当所述当前每帧TCP平均发送时长小于或者等于所述第一预设风险值时,判断所述当前每帧TCP平均发送时长是否大于第二预设风险值;
第三判断单元,用于若所述当前每帧TCP平均发送时长大于第二预设风险值并且当前缓冲区的数据占有率大于预设阈值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率。
在本申请实施方式中,所述自适应码率控制模块200具体包括:
吞吐量判断单元,用于判断当前缓冲区的吐出数据量与吞入数据量之间的关系,当吐出数据量大于或者等于吞入数据量时,将计数器的计数值加一;当吐出数据量小于吞入数据量时,将计数器的计数值减一;
码率调整单元,用于根据当前计数器中计数值的大小,调整下一周期的码率。
本发明实施方式利用码率与帧率调整相互配合作用,一方面有效控制网络波动情况下的音视频数据发送量,缓解网络拥塞,同时又能给播放端带来流畅的观看体验;另一方面在网络质量恢复时能够确保音视频的码率帧率是以设定的最优质量配置进行推流,并且能使不同码率帧率配置切换时以一种更为平滑的方式进行,不会给观看端带来画质波动的突兀感。
上面对本申请的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本申请的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本申请旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。
Claims (10)
1.一种网络推流质量的优化方法,其特征在于,所述方法包括:
按照预设周期采集推流的特征信息,所述特征信息包括平均码率、平均帧率、缓冲区数据吞吐量、每帧TCP平均发送时长;
根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整,并将调整后的码率作为目标码率反馈至编码器;
根据当前缓冲区数据吞吐量,对下一周期的帧率进行调整,并根据调整后的帧率确定两帧之间的时间间隔;基于确定的所述时间间隔对进入编码器的音视频数据进行过滤,以生成符合调整后的帧率的音视频数据;
按照调整后的码率和调整后的帧率进行音视频数据的编码及传输。
2.根据权利要求1所述的网络推流质量的优化方法,其特征在于,根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整具体包括:
当所述当前每帧TCP平均发送时长大于第一预设风险值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率;
当所述当前每帧TCP平均发送时长小于或者等于所述第一预设风险值时,判断所述当前每帧TCP平均发送时长是否大于第二预设风险值;
若所述当前每帧TCP平均发送时长大于第二预设风险值并且当前缓冲区的数据占有率大于预设阈值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率。
3.根据权利要求2所述的网络推流质量的优化方法,其特征在于,所述方法还包括:
判断上一次进行的码率调整是否为下降码率,若是,将所述预设码率步长增加至预设值,并按照增加后的预设值下降当前码率。
4.根据权利要求1所述的网络推流质量的优化方法,其特征在于,根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整具体包括:
判断当前缓冲区的吐出数据量与吞入数据量之间的关系,当吐出数据量大于或者等于吞入数据量时,将计数器的计数值加一;当吐出数据量小于吞入数据量时,将计数器的计数值减一;
根据当前计数器中计数值的大小,调整下一周期的码率。
5.根据权利要求4所述的网络推流质量的优化方法,其特征在于,根据当前计数器中计数值的大小,调整下一周期的码率具体包括:
当所述计数器中的计数值小于第一判定阈值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率,同时将所述计数器的计数值归零;
当所述计数器中的计数值大于第二判定阈值时,按照预设码率步长提高当前码率,并将提高后的码率作为下一周期的码率,同时将所述计数器的计数值归零。
6.根据权利要求5所述的网络推流质量的优化方法,其特征在于,所述方法还包括:
判断上一次进行的码率调整是否为下降码率,若是,将所述预设码率步长增加至预设值,并按照增加后的预设值下降当前码率;
判断上一次进行的码率调整是否为提高码率,若是,将所述预设码率步长增加至预设值,并按照增加后的预设值提高当前码率。
7.根据权利要求1所述的网络推流质量的优化方法,其特征在于,所述推流按照下述方式生成:
将预先采集的音视频数据经过编码器进行编码,并将编码后的音视频数据经过封包后通过实时消息传输协议RTMP进行传输,以生成所述推流。
8.一种网络推流质量的优化***,其特征在于,所述***包括:
流数据收集控制模块,用于按照预设周期采集推流的特征信息,所述特征信息包括平均码率、平均帧率、缓冲区数据吞吐量、每帧TCP平均发送时长;
自适应码率控制模块,用于根据当前每帧TCP平均发送时长以及当前缓冲区数据吞吐量,对下一周期的码率进行调整,并将调整后的码率作为目标码率反馈至编码器;
动态帧率控制模块,用于根据当前缓冲区数据吞吐量,对下一周期的帧率进行调整,并根据调整后的帧率确定两帧之间的时间间隔;基于确定的所述时间间隔对进入编码器的音视频数据进行过滤,以生成符合调整后的帧率的音视频数据;
传输控制模块,用于按照调整后的码率和调整后的帧率进行音视频数据的编码及传输。
9.根据权利要求8所述的网络推流质量的优化***,其特征在于,所述自适应码率控制模块具体包括:
第一判断单元,用于当所述当前每帧TCP平均发送时长大于第一预设风险值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率;
第二判断单元,用于当所述当前每帧TCP平均发送时长小于或者等于所述第一预设风险值时,判断所述当前每帧TCP平均发送时长是否大于第二预设风险值;
第三判断单元,用于若所述当前每帧TCP平均发送时长大于第二预设风险值并且当前缓冲区的数据占有率大于预设阈值时,按照预设码率步长下降当前码率,并将下降后的码率作为下一周期的码率。
10.根据权利要求8所述的网络推流质量的优化***,其特征在于,所述自适应码率控制模块具体包括:
吞吐量判断单元,用于判断当前缓冲区的吐出数据量与吞入数据量之间的关系,当吐出数据量大于或者等于吞入数据量时,将计数器的计数值加一;当吐出数据量小于吞入数据量时,将计数器的计数值减一;
码率调整单元,用于根据当前计数器中计数值的大小,调整下一周期的码率。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710199908.3A CN107026856A (zh) | 2017-03-30 | 2017-03-30 | 一种网络推流质量的优化方法及优化*** |
PCT/CN2018/079677 WO2018177165A1 (zh) | 2017-03-30 | 2018-03-20 | 一种网络推流质量的优化方法及优化*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710199908.3A CN107026856A (zh) | 2017-03-30 | 2017-03-30 | 一种网络推流质量的优化方法及优化*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107026856A true CN107026856A (zh) | 2017-08-08 |
Family
ID=59526423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710199908.3A Pending CN107026856A (zh) | 2017-03-30 | 2017-03-30 | 一种网络推流质量的优化方法及优化*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107026856A (zh) |
WO (1) | WO2018177165A1 (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107277568A (zh) * | 2017-08-16 | 2017-10-20 | 广州市千钧网络科技有限公司 | 一种推流配置参数动态调整方法及装置 |
CN108282491A (zh) * | 2018-02-27 | 2018-07-13 | 北京奇艺世纪科技有限公司 | 一种评估推流质量的方法及装置 |
CN108600758A (zh) * | 2018-03-26 | 2018-09-28 | 南京地铁建设有限责任公司 | 基于城市轨道乘客信息***的i帧高突发码流整形方法 |
WO2018177165A1 (zh) * | 2017-03-30 | 2018-10-04 | 上海七牛信息技术有限公司 | 一种网络推流质量的优化方法及优化*** |
CN109168013A (zh) * | 2018-09-19 | 2019-01-08 | 广州华多网络科技有限公司 | 一种抽帧的方法、装置、设备及计算机可读存储介质 |
CN109743639A (zh) * | 2018-12-25 | 2019-05-10 | 深圳市麦谷科技有限公司 | 一种自适应码率控制方法、***、计算机设备及存储介质 |
CN109874027A (zh) * | 2019-03-11 | 2019-06-11 | 宸瑞普惠(广州)科技有限公司 | 一种低延时手术示教直播方法及其*** |
CN109922307A (zh) * | 2017-12-12 | 2019-06-21 | 杭州萤石软件有限公司 | 一种多媒体数据传输方法及摄像机 |
CN109996094A (zh) * | 2017-12-29 | 2019-07-09 | 杭州海康威视***技术有限公司 | 视频播放方法、装置及*** |
CN110535810A (zh) * | 2018-05-25 | 2019-12-03 | 视联动力信息技术股份有限公司 | 一种视频数据的处理方法和终端 |
CN110958540A (zh) * | 2018-09-26 | 2020-04-03 | 炬芯(珠海)科技有限公司 | 一种usb音频的转换方法及装置 |
CN111385574A (zh) * | 2018-12-28 | 2020-07-07 | 北京字节跳动网络技术有限公司 | 视频编码中的码率控制方法、装置、移动终端及存储介质 |
CN112087627A (zh) * | 2020-08-04 | 2020-12-15 | 西安万像电子科技有限公司 | 图像的编码控制方法、装置、设备及存储介质 |
CN113206846A (zh) * | 2021-04-29 | 2021-08-03 | 杭州当虹科技股份有限公司 | 动态调整发送码率方法及装置 |
CN114885209A (zh) * | 2022-04-08 | 2022-08-09 | 车智互联(北京)科技有限公司 | 一种直播数据处理方法、计算设备及可读存储介质 |
WO2023083143A1 (zh) * | 2021-11-12 | 2023-05-19 | 中兴通讯股份有限公司 | 入向码流码率获取方法、收流处理方法、电子设备、介质 |
WO2023159911A1 (zh) * | 2022-02-24 | 2023-08-31 | 广州市保伦电子有限公司 | 一种音视频互动低延迟传输方法及后台服务器 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110366035B (zh) * | 2019-07-19 | 2021-08-24 | 广州酷狗计算机科技有限公司 | 帧率控制方法、装置、计算机设备和计算机可读存储介质 |
CN112702649A (zh) * | 2019-10-22 | 2021-04-23 | 高新兴科技集团股份有限公司 | 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备 |
CN112714315B (zh) * | 2019-10-24 | 2023-02-28 | 上海交通大学 | 基于全景视频的分层缓冲方法及*** |
CN113094239B (zh) * | 2021-04-27 | 2022-12-06 | 上海哔哩哔哩科技有限公司 | 直播异常原因的确定方法及服务器 |
CN115412776A (zh) * | 2021-05-28 | 2022-11-29 | 华为技术有限公司 | 一种近场场景下视频传输中的网络质量评估方法及设备 |
CN113905249B (zh) * | 2021-09-30 | 2023-06-06 | 上海哔哩哔哩科技有限公司 | 推流异常检测方法及装置 |
CN113905200B (zh) * | 2021-10-08 | 2023-07-11 | 山东亚华电子股份有限公司 | 一种基于统计的视频处理方法及设备 |
CN114222157B (zh) * | 2021-12-22 | 2024-05-10 | 厦门视诚科技有限公司 | 一种多输入信号便携式导播推流预监*** |
CN114363209B (zh) * | 2022-01-07 | 2024-05-28 | 北京百度网讯科技有限公司 | 基于tcp网络的性能探测方法、装置、设备和存储介质 |
CN114051142B (zh) * | 2022-01-13 | 2022-04-29 | 深圳市麦谷科技有限公司 | 硬件多路编码防抖方法、装置、智能终端及存储介质 |
CN115665485B (zh) * | 2022-12-26 | 2023-04-28 | 杭州星犀科技有限公司 | 视频画面优化方法及装置、存储介质和视频终端 |
CN116634203B (zh) * | 2023-07-18 | 2023-09-19 | 湖南马栏山视频先进技术研究院有限公司 | 一种多协同自适应的视频质量优化方法 |
CN116684668B (zh) * | 2023-08-03 | 2023-10-20 | 湖南马栏山视频先进技术研究院有限公司 | 一种自适应的视频帧处理方法及播放终端 |
CN117440209B (zh) * | 2023-12-15 | 2024-03-01 | 牡丹江师范学院 | 一种基于演唱场景的实现方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296184A (zh) * | 2008-05-30 | 2008-10-29 | 华为技术有限公司 | 一种数据传输的方法、***及装置 |
CN101771492A (zh) * | 2008-12-29 | 2010-07-07 | 华为技术有限公司 | 调整流媒体码率的方法和装置 |
CN102201887A (zh) * | 2010-03-23 | 2011-09-28 | 深圳市金蝶中间件有限公司 | 控制套接字传输速率的方法和装置 |
WO2014154822A1 (en) * | 2013-03-27 | 2014-10-02 | Jacoti Bvba | Method and device for latency adjustment |
CN204929081U (zh) * | 2015-08-26 | 2015-12-30 | 重庆西线科技有限公司 | 一种视频传输装置 |
CN106488175A (zh) * | 2015-08-26 | 2017-03-08 | 重庆西线科技有限公司 | 一种视频传输方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107026856A (zh) * | 2017-03-30 | 2017-08-08 | 上海七牛信息技术有限公司 | 一种网络推流质量的优化方法及优化*** |
-
2017
- 2017-03-30 CN CN201710199908.3A patent/CN107026856A/zh active Pending
-
2018
- 2018-03-20 WO PCT/CN2018/079677 patent/WO2018177165A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296184A (zh) * | 2008-05-30 | 2008-10-29 | 华为技术有限公司 | 一种数据传输的方法、***及装置 |
CN101771492A (zh) * | 2008-12-29 | 2010-07-07 | 华为技术有限公司 | 调整流媒体码率的方法和装置 |
CN102201887A (zh) * | 2010-03-23 | 2011-09-28 | 深圳市金蝶中间件有限公司 | 控制套接字传输速率的方法和装置 |
WO2014154822A1 (en) * | 2013-03-27 | 2014-10-02 | Jacoti Bvba | Method and device for latency adjustment |
CN204929081U (zh) * | 2015-08-26 | 2015-12-30 | 重庆西线科技有限公司 | 一种视频传输装置 |
CN106488175A (zh) * | 2015-08-26 | 2017-03-08 | 重庆西线科技有限公司 | 一种视频传输方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018177165A1 (zh) * | 2017-03-30 | 2018-10-04 | 上海七牛信息技术有限公司 | 一种网络推流质量的优化方法及优化*** |
CN107277568A (zh) * | 2017-08-16 | 2017-10-20 | 广州市千钧网络科技有限公司 | 一种推流配置参数动态调整方法及装置 |
CN109922307A (zh) * | 2017-12-12 | 2019-06-21 | 杭州萤石软件有限公司 | 一种多媒体数据传输方法及摄像机 |
CN109996094B (zh) * | 2017-12-29 | 2021-08-13 | 杭州海康威视***技术有限公司 | 视频播放方法、装置及*** |
CN109996094A (zh) * | 2017-12-29 | 2019-07-09 | 杭州海康威视***技术有限公司 | 视频播放方法、装置及*** |
CN108282491A (zh) * | 2018-02-27 | 2018-07-13 | 北京奇艺世纪科技有限公司 | 一种评估推流质量的方法及装置 |
CN108600758A (zh) * | 2018-03-26 | 2018-09-28 | 南京地铁建设有限责任公司 | 基于城市轨道乘客信息***的i帧高突发码流整形方法 |
CN110535810A (zh) * | 2018-05-25 | 2019-12-03 | 视联动力信息技术股份有限公司 | 一种视频数据的处理方法和终端 |
CN109168013A (zh) * | 2018-09-19 | 2019-01-08 | 广州华多网络科技有限公司 | 一种抽帧的方法、装置、设备及计算机可读存储介质 |
CN109168013B (zh) * | 2018-09-19 | 2020-09-25 | 广州华多网络科技有限公司 | 一种抽帧的方法、装置、设备及计算机可读存储介质 |
CN110958540A (zh) * | 2018-09-26 | 2020-04-03 | 炬芯(珠海)科技有限公司 | 一种usb音频的转换方法及装置 |
CN110958540B (zh) * | 2018-09-26 | 2022-02-18 | 炬芯科技股份有限公司 | 一种usb音频的转换方法及装置 |
CN109743639A (zh) * | 2018-12-25 | 2019-05-10 | 深圳市麦谷科技有限公司 | 一种自适应码率控制方法、***、计算机设备及存储介质 |
CN109743639B (zh) * | 2018-12-25 | 2021-11-09 | 深圳市麦谷科技有限公司 | 一种自适应码率控制方法、***、计算机设备及存储介质 |
CN111385574A (zh) * | 2018-12-28 | 2020-07-07 | 北京字节跳动网络技术有限公司 | 视频编码中的码率控制方法、装置、移动终端及存储介质 |
CN109874027A (zh) * | 2019-03-11 | 2019-06-11 | 宸瑞普惠(广州)科技有限公司 | 一种低延时手术示教直播方法及其*** |
CN112087627A (zh) * | 2020-08-04 | 2020-12-15 | 西安万像电子科技有限公司 | 图像的编码控制方法、装置、设备及存储介质 |
CN113206846A (zh) * | 2021-04-29 | 2021-08-03 | 杭州当虹科技股份有限公司 | 动态调整发送码率方法及装置 |
CN113206846B (zh) * | 2021-04-29 | 2022-12-02 | 杭州当虹科技股份有限公司 | 动态调整发送码率方法及装置 |
WO2023083143A1 (zh) * | 2021-11-12 | 2023-05-19 | 中兴通讯股份有限公司 | 入向码流码率获取方法、收流处理方法、电子设备、介质 |
WO2023159911A1 (zh) * | 2022-02-24 | 2023-08-31 | 广州市保伦电子有限公司 | 一种音视频互动低延迟传输方法及后台服务器 |
CN114885209A (zh) * | 2022-04-08 | 2022-08-09 | 车智互联(北京)科技有限公司 | 一种直播数据处理方法、计算设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018177165A1 (zh) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107026856A (zh) | 一种网络推流质量的优化方法及优化*** | |
CN106134130B (zh) | 用于实时视频流量的动态有效速率估计的***和方法 | |
CN105025249B (zh) | 视频监控数据传输控制方法、装置及视频监控*** | |
CN104519325B (zh) | 一种基于4g网络的无线视频监控***自适应保障方法 | |
EP3123674B1 (en) | Channel bonding | |
CN101656888B (zh) | 一种视频传输方法及装置、*** | |
US20040071083A1 (en) | Method for streaming fine granular scalability coded video over an IP network | |
Yuan et al. | Spatial and temporal consistency-aware dynamic adaptive streaming for 360-degree videos | |
CN101466034A (zh) | 发送、播放流媒体数据的方法和装置及流媒体点播*** | |
CN103944834B (zh) | 一种音视频转发控制方法及*** | |
EP1149493A1 (en) | System and method for controlling the delay budget of a decoder buffer in a streaming data receiver | |
CN105393583B (zh) | 具有媒体突发传送能力的媒体分发网络 | |
CN1468001A (zh) | 基于因特网的媒体流自适应传输方法 | |
CN107205160A (zh) | 一种针对服务器下发的视频的播放方法及装置 | |
CN1848810A (zh) | 一种流媒体发送速率控制方法 | |
CN106713947A (zh) | 减少直播时延和卡顿的方法及装置、直播*** | |
CN115086779A (zh) | 视频传输*** | |
WO2021097865A1 (zh) | 面向多人互动直播的自适应码率调节方法 | |
CN107666593A (zh) | 一种波动网络环境下的视频实时传输方法 | |
WO2012000109A1 (en) | Adaptive frame rate control for video in a resource limited system | |
CN110769277A (zh) | 执法记录仪基于加速度传感器的视频编码***及编码方式 | |
CN107613331A (zh) | 视频传输过程的码率控制方法 | |
CN106792247A (zh) | 减少时延的直播流推送方法及装置、直播*** | |
CN109803169A (zh) | 基于网络带宽实现多路组播的方法及*** | |
CN108833995A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170808 |