自动调整视频直播码率的方法、视频传输装置和服务器与流程

文档序号:26013376发布日期:2021-07-23 21:34阅读:353来源:国知局
自动调整视频直播码率的方法、视频传输装置和服务器与流程

本发明总地涉及视频直播技术领域,更具体地涉及一种自动调整视频直播码率的方法、视频传输装置和服务器。



背景技术:

现有手持云台相机直播过程中,服务器推送码流一般采用前期设置好的固定码率进行推流,而实际使用场景下,直播网络质量是动态变化的,且不可预测。采用固定码率进行推流可能导致直播过程中存在直播画面卡顿以及延迟增大等问题,影响用户直播体验。

因此,鉴于上述问题的存在,本发明提出一种自动调整视频直播码率的方法、系统和计算机存储介质。



技术实现要素:

为了解决上述问题中的至少一个而提出了本发明。具体地,本发明一方面提供一种自动调整视频直播码率的方法,所述方法包括:获取视频传输装置当前向服务器推送视频流时的当前网络带宽;对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽;根据所述离散化的当前网络带宽和所述视频传输装置的当前设定码率,自动调整所述当前设定码率;基于调整后的当前设定码率,推送视频流至所述服务器。

本发明另一方面提供一种自动调整视频直播码率的方法,所述方法包括:获取视频传输装置当前向服务器推送视频流时的当前网络带宽;对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽;根据所述离散化的当前网络带宽和所述视频传输装置的当前设定码率,自动调整所述当前设定码率;推送调整后的当前设定码率至所述视频传输装置,以使所述视频传输装置基于调整后的当前设定码率推送视频流至所述服务器。

本发明再一方面提供一种视频传输装置,所述视频传输装置包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的所述指令,使得所述处理器执行以下动作,所述动作包括:获取视频传输装置当前向服务器推送视频流时的当前网络带宽;对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽;根据所述离散化的当前网络带宽和所述视频传输装置的当前设定码率,自动调整所述当前设定码率;基于调整后的当前设定码率,推送视频流至所述服务器。

本发明再一方面提供一种服务器,所述服务器包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的所述指令,使得所述处理器执行以下动作,所述动作包括:获取视频传输装置当前向服务器推送视频流时的当前网络带宽;对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽;根据所述离散化的当前网络带宽和所述视频传输装置的当前设定码率,自动调整所述当前设定码率;推送调整后的当前设定码率至所述视频传输装置,以使所述视频传输装置基于调整后的当前设定码率推送视频流至所述服务器。

本发明又一方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述的方法。

本发明实施例的方法和装置,能够动态监测当前直播时的网络环境(也即当前网络带宽),自适应调节视频传输装置的直播码率,从而有效缓解直播卡顿及直播延迟,提高用户体验。并且,在获取到当前网络带宽后首先进行离散化处理,降低了码率的频繁调节以及降低了码率调节的震荡,提升了稳定性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明一实施例中的视频直播系统的架构示意图;

图2示出了本发明一实施例中的直播网络链路动态变化的示意图;

图3示出了本发明一个实施例中的自动调整视频直播码率的方法的示意性流程图;

图4示出了本发明一个实施例中的离散化的当前网络带宽的示意图;

图5示出了本发明一个实施例中的调整当前设定码率的过程示意图;

图6示出了本发明一个实施例中的调整后的当前设定码率的示意图;

图7示出了本发明另一个实施例中的自动调整视频直播码率的方法的示意性流程图;

图8示出了本发明一个实施例中的视频传输装置的示意性框图;

图9示出了本发明一个实施例中的服务器的示意性框图。

具体实施方式

为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。

在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。

应当理解的是,本发明能够以不同形式实施,而不应当解释为局限于这里提出的实施例。相反地,提供这些实施例将使公开彻底和完全,并且将本发明的范围完全地传递给本领域技术人员。

在此使用的术语的目的仅在于描述具体实施例并且不作为本发明的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。

为了彻底理解本发明,将在下列的描述中提出详细的结构,以便阐释本发明提出的技术方案。本发明的可选实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

图1为本发明一实施例中的视频直播系统的架构示意图,参考图1,该视频直播系统100可以包括:视频传输装置101、服务器102和播放端103。视频传输装置101与服务器102可以通过无线(例如传统4g、5g、wifi或者互联网等)连接,播放端103与服务器102可以通过无线(例如传统4g、5g、wifi或者互联网等)连接。

在一个示例中,视频传输装置101可以为视频采集装置(未示出),所述视频采集装置用于采集视频直播的视频流,并推送至所述服务器102。其中,视频采集装置还可以更具体的用于进行音视频采集、视频处理(如美颜、加水印等)、音视频编码压缩、音视频封装等处理。可选地,视频采集装置可以是任意具有视频采集功能的电子设备,例如视频采集装置可以为相机(例如,手持云台相机)、手机、平板电脑、智能穿戴设备、计算机之类的设备。

在另一示例中,所述视频传输装置101还可以用于从视频采集装置接收视频直播的视频流,所述视频采集装置用于采集所述视频流并将所述视频流发送至所述视频传输装置,而视频传输装置101向服务器102推送该视频流,所述视频传输装置例如可以包括终端设备,该终端设备可以是例如移动计算或通信设备、智能手机、可穿戴设备、计算机、台式计算机、笔记本、平板电脑等。该终端设备可以和视频采集装置(例如相机)通信连接(例如wifi、蓝牙连接等),从而可以从视频采集装置接收视频直播的视频流,并向服务器推送该视频流。

服务器102可以包括流媒体服务器或直播平台的服务器,与所述视频传输装置101可以通过实时消息传输协议(rtmp,realtimemessagingprotocol)进行音视频流传输,服务器102主要用于接收视频传输装置101传输的音视频流,然后将接收的音视频流分发给各个播放端103。在本文中,推流(upstreaming)是指视频传输装置将语音流或视频流推送到服务器。

播放端103也即直播的观众,与服务器102通过rtmp或者超文本传输协议(http,hypertexttransferprotocol)进行音视频数据传输,主要用于接收服务器102传输的音视频流,对音视频流进行解码、播放。

在实际应用中,现有手持云台相机直播过程中,服务器推送码流一般采用前期设置好的固定码率进行推流,而实际使用场景下,直播网络质量是动态变化的,且不可预测,如图2所示的直播网络链路,其中,图中max虚线表示直播的最大推流码率,通常以固定码率进行推流时将该最大推流码率设定为直播设定码率,min虚线表示直播最小推流码率,在实际直播时,例如如图2所示,0至t2时间段网络带宽下降,t2至t3时间段网络带宽以较差状态平稳运行,t3至t5时间段网络带宽上升,t5至t6时间段网络带宽以较好状态平稳运行,t6至t7时间段网络带宽下降,时间t7之后网络以一般状态平稳运行,从图中可以看到,网络状态实时变化且不可预测。如果直播过程中视频传输装置采用固定码率进行推流可能导致直播过程中存在直播画面卡顿以及延迟增大等问题,影响用户直播体验。

基于上述应用场景的上述问题的存在,如图3所示,本发明实施例中提供一种动调整视频直播码率的方法300,基于视频传输装置的角度,该方法包括以下步骤:在步骤s301,获取视频传输装置当前向服务器推送视频流时的当前网络带宽;在步骤s302,对当前网络带宽进行离散化处理,以获得离散化的当前网络带宽;在步骤s303,根据离散化的当前网络带宽和视频传输装置的当前设定码率,自动调整当前设定码率;在步骤s304,基于调整后的当前设定码率,推送视频流至服务器。通过上述方法,能够动态监测当前直播时的网络环境(也即当前网络带宽),自适应调节视频传输装置的直播码率,从而有效缓解直播卡顿及直播延迟,提高用户体验。并且,上述方法在获取到当前网络带宽后首先进行离散化处理,降低了码率的频繁调节以及降低了码率调节的震荡,提升了稳定性。

具体地,下面参考图3至图6对本发明实施例中提供的一种动调整视频直播码率的方法300进行描述,该描述基于视频传输装置的角度。

首选,如图3所示,在步骤s301中,获取视频传输装置当前向服务器推送视频流时的当前网络带宽。

在本文中,可以通过本领域技术人员熟知的任意适合的方法获取该当前网络带宽,例如,可以通过对当前网络带宽进行测试从而获取该当前网络带宽,例如,通过视频传输装置在时间窗口内上传或下载的数据量来计算当前网络带宽,或者,还可以通过第三方工具来测试该当前网络带宽。还可以通过检测视频传输装置的发送缓冲队列中的数据量来计算当前网络带宽。

接着,继续参考图3,在步骤s302中,对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽。

示例性地,对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽,可以具体为通过离散化间隔对所述当前网络带宽进行离散化处理(也即进行取整),以获得离散化的当前网络带宽,通过离散化处理可以降低当前网络带宽的波动,避免后续基于该离散化的当前网络带宽对码率进行调节时的码率的频繁调节以及降低了码率调节的震荡,相比不做离散化处理的情况,减小了计算工作量,降低了处理器的负荷,避免网络带宽反复震荡,提升了稳定性。

值得一提的是,在本文中离散化间隔可以根据先验进行合理设置,在此不对其进行具体限定。

在一个示例中,所述离散化的当前网络带宽为以离散化间隔对所述当前网络带宽进行取整而获得,通过取整可以使得特定范围内的当前网络带宽散化为相同的网络带宽,从而减小网络带宽的波动,以避免后续对码率的频繁调节。其中,取整可以包括向下取整或向上取整。例如,所述离散化的当前网络带宽为以所述离散化间隔对所述当前网络带宽向下取整而获得的数值,而通过向下取整的方式可以在取整的同时等比例的缩小当前网络带宽,从而进一步减小网络带宽的波动,以避免后续对码率的频繁调节。例如可以用以下公式(1)表示:

其中,y为当前网络带宽,m为离散化间隔,yf为离散化的当前网络带宽,为向下取整。

如图4所示,图中直线型折线为离散化的当前网络带宽,而曲线则为实际的当前网络带宽,从图可以看出离散化的当前网络带宽相比实际的当前网络带宽其变化波动更小。

接着,继续参考图3,在步骤s303,根据离散化的当前网络带宽和视频传输装置的当前设定码率,自动调整当前设定码率。

视频传输装置的当前设定码率也即为当前直播时的视频传输装置的推流码率。在一个示例中,根据所述离散化的当前网络带宽和所述视频传输装置的当前设定码率,自动调整所述当前设定码率,包括:若所述当前设定码率大于所述离散化的当前网络带宽,则降低所述当前设定码率,例如将当前设定码率降低到等于或低于离散化的当前网络带宽,从而避免由于码率过大而导致的直播延迟的发生,若所述当前设定码率小于所述离散化的当前网络带宽,则增大所述当前设定码率,例如调整当前设定码率增大到等于离散化的当前网络带宽或者小于离散化的当前网络带宽而大于当前设定码率,从而避免由于码率过低而导致的画面卡顿等问题的出现,提高直播画面质量。

在一个示例中,所述当前设定码率处于第一阈值码率和第二阈值码率之间,其中,所述第二阈值码率大于所述第一阈值码率,其中,第一阈值码率可以为直播的最小推流码率min,低于该最小推流码率,直播画面很可能会发生明显卡顿,严重影响直播效果,第二阈值码率可以为直播的最大推流码率max,该最大推流码率可以为服务器允许视频传输装置向服务器推流的最大推流码率max,因此,无论当前设定码率如何调整,其数值始终处于第一阈值码率和第二阈值码率之间,从而保证直播画面的质量和推流的流畅性。

在一个示例中,若所述当前设定码率大于所述离散化的当前网络带宽,则所述调整后的当前设定码率为所述离散化的当前网络带宽和所述第一阈值码率中的较大者,可以通过以下公式表示:若yf<x,则调整后的x=max(yf,min),其中,yf为离散化的当前网络带宽,x表示当前设定码率,min为直播的最小推流码率,例如,参考图5中t1到t2时刻,在t2时刻离散化后的当前网络带宽相比t1时刻时的当前设定码率明显减小,因此,需要调整t2时刻的当前设定码率,将其调整为所述离散化的当前网络带宽和所述第一阈值码率中的较大者,也即调整为所述离散化的当前网络带宽和直播的最小推流码率中的较大者,由于t2时刻离散化的当前网络带宽和最小推流码率大体相等,因此,调整后的当前网络带宽为两者中的任意一个都可以。

调整后的当前设定码率为所述离散化的当前网络带宽和所述第一阈值码率中的较大者也即在降低当前设定码率时,保证降低后的当前设定码率(也即调整后的当前设定码率)大于或等于第一阈值码率,这样设定的目的是为了防止以下情况的发生:如果当前网络带宽小于第一阈值码率(例如最小推流码率min),那么如果直接将当前设定码率降低为离散化的当前网络带宽则可能导致当前设定码率小于最小推流码率min,从而影响使直播画面严重卡顿,严重影响直播的效果。因此,通过上述调整,可以使调整后的当前设定码率与当前网络带宽相匹配,在保证直播质量的同时避免推流的延迟,提高直播效果和用户体验。

在另一个示例中,若所述当前设定码率小于所述离散化的当前网络带宽,则所述调整后的当前设定码率为在所述当前设定码率上增加至少一个码率增加量后获得的码率数值和所述第二阈值码率中的较小者,也即在增加当前设定码率避免直播卡顿并提高直播效果和稳定性的同时,也要保证调整后的当前设定码率小于或等于第二阈值码率(例如直播的最大推流码率max),避免调整后的当前设定码率超过服务器允许的最大推流码率而对影响直播效果的问题出现。例如,参考图5中t4时刻之后t5时刻之前离散化的当前网络带宽发生变化的时刻,由于该时刻的离散化后的当前网络带宽大于t4时刻的当前设定码率,如果在该时刻仍然沿用t4时刻的设定码率将无法达到最佳直播效果,因此可以在当前设定码率的基础上增加码率增加量,则调整后的当前设定码率为在所述当前设定码率上增加至少一个码率增加量后获得的码率数值和所述第二阈值码率(例如直播的最大推流码率max)中的较小者,也即为当前设定码率上增加至少一个码率增加量后获得的码率数值,当直播进行到t5时刻时,再次检测到离散化的当前网络带宽仍然大于当前设定码率,那么继续上述操作,在所述当前设定码率上增加一个码率增加量后获得一个码率数值,该码率数值仍然比直播的最大推流码率max小,因此,调整当前设定码率为该码率数值,以此原理对直播过程中的码率进行调整,最终可获得如图6所示的调整后的当前设定码率曲线图,在直播过程中基于该当前设定码率进行推流,从而有效缓解直播卡顿及直播延迟,提高用户体验。

可选地,所述码率增加量小于离散化间隔,所述离散化间隔用于对所述当前网络带宽进行离散化处理,更进一步地,2倍的所述码率增加量小于所述离散化间隔,通过上述限定,保证在增大当前设定码率的过程中,以小幅度的码率增加量逐步增加当前设定码率,避免在大幅度增加码率时,在当前直播的下一刻网络带宽忽然发生变化而和当前设定码率不匹配时又要再次对码率进行调整的问题出现,也即防止频繁的对码率进行调节,从而减小计算量,提高直播质量和用户体验。

可以通过以下公式表示上述关系:若yf>x,则在当前设定值x上添加增加至少一个码率增加量δ(delta)(例如,保证m/δ>2),即增大后的x=x+δ,则调整后的x=min(x+δ,max),其中,yf为离散化的当前网络带宽,x表示当前设定码率,max为直播的最大推流码率。

在其他示例中,可以每间隔预定的时间间隔对当前设定码率依据前述的方法进行调整,该时间间隔可以根据实际需要进行合理的设定,例如可以每间隔3秒、5秒、10秒、20秒、30秒、40秒、50秒、60秒、80秒等。

继续参考图3,在步骤s304,基于调整后的当前设定码率,推送视频流至服务器。

具体地,可以通过本领域技术人员熟知的任何适合的方法实现向服务器推流,例如,为了实现推流功能可以预先通过例如rtmp协议或其他协议对视频流进行封装,封装后再通过例如qos(qualityofservice,服务质量)算法将视频流推送到服务器。由于本实施例中,基于直播过程中动态分析当前网络带宽,根据当前网络状态,动态调整直播码率,解决直播过程中减缓卡顿,延迟等问题。

根据本发明实施例的方法,能够动态监测当前直播时的网络环境(也即当前网络带宽),自适应调节视频传输装置的直播码率,从而有效缓解直播卡顿及直播延迟,提高用户体验。并且,上述方法在获取到当前网络带宽后首先进行离散化处理,降低了码率的频繁调节以及降低了码率调节的震荡,提升了稳定性。

在本发明的另一个实施例中还提供一种自动调整视频直播码率的方法700,下面参考图7基于服务器的角度对该方法700进行描述。

首先,如图7所示,在步骤s701中,获取视频传输装置当前向服务器推送视频流时的当前网络带宽。

在本文中,可以通过本领域技术人员熟知的任意适合的方法获取该当前网络带宽,例如,可以通过对当前网络带宽进行测试从而获取该当前网络带宽,例如,通过视频传输装置在时间窗口内上传或下载的数据量来计算当前网络带宽,或者,还可以通过第三方工具来测试该当前网络带宽。

在另一个示例中,服务器接收所述视频传输装置发送的视频传输装置当前向服务器推送视频流时的当前网络带宽。

接着,继续参考图7,在步骤s702中,对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽。

示例性地,对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽,可以具体为通过离散化间隔对所述当前网络带宽进行离散化处理(也即进行取整),以获得离散化的当前网络带宽,通过离散化处理可以降低当前网络带宽的波动,避免后续基于该离散化的当前网络带宽对码率进行调节时的码率的频繁调节以及降低了码率调节的震荡,相比不做离散化处理的情况,减小了计算工作量,降低了处理器的负荷,提升了稳定性。

值得一提的是,在本文中离散化间隔可以根据先验进行合理设置,在此不对其进行具体限定。

在一个示例中,所述离散化的当前网络带宽为以离散化间隔对所述当前网络带宽进行取整而获得,通过取整可以使得特定范围内的当前网络带宽散化为相同的网络带宽,从而减小网络带宽的波动,以避免后续对码率的频繁调节,更进一步,所述离散化的当前网络带宽为以所述离散化间隔对所述当前网络带宽向下取整而获得的数值,而通过向下取整的方式可以在取整的同时等比例的缩小当前网络带宽,从而进一步减小网络带宽的波动,以避免后续对码率的频繁调节,具体可以用以下公式(1)表示:

其中,y为当前网络带宽,m为离散化间隔,yf为离散化的当前网络带宽,为向下取整。

如图4所示,图中直线型折线为离散化的当前网络带宽,而曲线则为实际的当前网络带宽,从图可以看出离散化的当前网络带宽相比实际的当前网络带宽其变化波动更小。

接着,继续参考图7,在步骤s703,根据离散化的当前网络带宽和视频传输装置的当前设定码率,自动调整当前设定码率。

视频传输装置的当前设定码率也即为当前直播时的视频传输装置的推流码率。在一个示例中,根据所述离散化的当前网络带宽和所述视频传输装置的当前设定码率,自动调整视频传输装置的所述当前设定码率,包括:若所述当前设定码率大于所述离散化的当前网络带宽,则降低所述当前设定码率,例如将当前设定码率降低到等于或低于离散化的当前网络带宽,从而避免由于码率过大而导致的直播延迟的发生,若所述当前设定码率小于所述离散化的当前网络带宽,则增大所述当前设定码率,例如调整当前设定码率增大到等于离散化的当前网络带宽或者小于离散化的当前网络带宽而大于当前设定码率,从而避免由于码率过低而导致的画面卡顿等问题的出现,提高直播画面质量。

在一个示例中,所述当前设定码率处于第一阈值码率和第二阈值码率之间,其中,所述第二阈值码率大于所述第一阈值码率,其中,第一阈值码率可以为直播的最小推流码率min,低于该最小推流码率,直播画面很可能会发生明显卡顿,严重影响直播效果,第二阈值码率可以为直播的最大推流码率max,该最大推流码率可以为服务器允许视频传输装置向服务器推流的最大推流码率max,因此,无论当前设定码率如何调整,其数值始终处于第一阈值码率和第二阈值码率之间,从而保证直播画面的质量和推流的流畅性。

在一个示例中,若所述当前设定码率大于所述离散化的当前网络带宽,则所述调整后的当前设定码率为所述离散化的当前网络带宽和所述第一阈值码率中的较大者,可以通过以下公式表示:若yf<x,则调整后的x=max(yf,min),其中,yf为离散化的当前网络带宽x表示当前设定码率,min为直播的最小推流码率,例如,参考图5中t1到t2时刻,在t2时刻离散化后的当前网络带宽相比t1时刻时的当前设定码率明显减小,因此,需要调整t2时刻的当前设定码率,将其调整为所述离散化的当前网络带宽和所述第一阈值码率中的较大者,也即调整为所述离散化的当前网络带宽和直播的最小推流码率中的较大者,由于t2时刻离散化的当前网络带宽和最小推流码率大体相等,因此,调整后的当前网络带宽为两者中的任意一个都可以。

调整后的当前设定码率为所述离散化的当前网络带宽和所述第一阈值码率中的较大者也即在降低当前设定码率时,保证降低后的当前设定码率(也即调整后的当前设定码率)大于或等于第一阈值码率,这样设定的目的是为了防止以下情况的发生:如果当前网络带宽小于第一阈值码率(例如最小推流码率min),那么如果直接将当前设定码率降低为离散化的当前网络带宽则可能导致当前设定码率小于最小推流码率min,从而影响使直播画面严重卡顿,严重影响直播的效果。因此,通过上述调整,可以使调整后的当前设定码率与当前网络带宽相匹配,在保证直播质量的同时避免推流的延迟,提高直播效果和用户体验。

在另一个示例中,若所述当前设定码率小于所述离散化的当前网络带宽,则所述调整后的当前设定码率为在所述当前设定码率上增加至少一个码率增加量后获得的码率数值和所述第二阈值码率中的较小者,也即在增加当前设定码率避免直播卡顿并提高直播效果和稳定性的同时,也要保证调整后的当前设定码率小于或等于第二阈值码率(例如直播的最大推流码率max),避免调整后的当前设定码率超过服务器允许的最大推流码率而对影响直播效果的问题出现。例如,参考图5中t4时刻之后t5时刻之前离散化的当前网络带宽发生变化的时刻,由于该时刻的离散化后的当前网络带宽大于t4时刻的当前设定码率,如果在该时刻仍然沿用t4时刻的设定码率将无法达到最佳直播效果,因此可以在当前设定码率的基础上增加码率增加量,则调整后的当前设定码率为在所述当前设定码率上增加至少一个码率增加量后获得的码率数值和所述第二阈值码率(例如直播的最大推流码率max)中的较小者,也即为当前设定码率上增加至少一个码率增加量后获得的码率数值,当直播进行到t5时刻时,再次检测到离散化的当前网络带宽仍然大于当前设定码率,那么继续上述操作,在所述当前设定码率上增加一个码率增加量后获得一个码率数值,该码率数值仍然比直播的最大推流码率max小,因此,调整当前设定码率为该码率数值,以此原理对直播过程中的码率进行调整,最终可获得如图6所示的调整后的当前设定码率曲线图,在直播过程中基于该当前设定码率进行推流,从而有效缓解直播卡顿及直播延迟,提高用户体验。

可选地,所述码率增加量小于离散化间隔,所述离散化间隔用于对所述当前网络带宽进行离散化处理,更进一步地,2倍的所述码率增加量小于所述离散化间隔,通过上述限定,保证在增大当前设定码率的过程中,以小幅度的码率增加量逐步增加当前设定码率,避免在大幅度增加码率时,在当前直播的下一刻网络带宽忽然发生变化而和当前设定码率不匹配时又要再次对码率进行调整的问题出现,也即防止频繁的对码率进行调节,从而减小计算量,提高直播质量和用户体验。

可以通过以下公式表示上述关系:若yf>x,则在当前设定值x上添加增加至少一个码率增加量δ(delta)(例如,保证m/δ>2),即增大后的x=x+δ,则调整后的x=min(x+δ,max),其中,yf为离散化的当前网络带宽,x表示当前设定码率,max为直播的最大推流码率。

在其他示例中,可以每间隔预定的时间间隔对当前设定码率依据前述的方法进行调整,该时间间隔可以根据实际需要进行合理的设定,例如可以每间隔3秒、5秒、10秒、20秒、30秒、40秒、50秒、60秒、80秒等。

继续参考图7,在步骤s704,推送调整后的当前设定码率至所述视频传输装置,以使所述视频传输装置基于调整后的当前设定码率推送视频流至所述服务器。

具体地,服务器和视频传输装置之间通信连接,服务器通过通信接口推送调整后的当前设定码率至所述视频传输装置,以使所述视频传输装置基于调整后的当前设定码率推送视频流至所述服务器。

视频传输装置可以通过本领域技术人员熟知的任何适合的方法实现向服务器推流,例如,为了实现推流功能可以预先通过例如rtmp协议或其他协议对视频流进行封装,封装后再通过例如qos(qualityofservice,服务质量)算法将视频流推送到服务器。服务器可以接收所述视频传输装置基于调整后的当前设定码率推送视频流,并将该视频流分发至各个播放端。由于本实施例中,基于直播过程中动态分析当前网络带宽,根据当前网络状态,动态调整直播码率,解决直播过程中减缓卡顿,延迟等问题。

根据本发明实施例的方法,能够动态监测当前直播时的网络环境(也即当前网络带宽),自适应调节视频传输装置的直播码率,从而有效缓解直播卡顿及直播延迟,提高用户体验。并且,上述方法在获取到当前网络带宽后首先进行离散化处理,降低了码率的频繁调节以及降低了码率调节的震荡,提升了稳定性。

本发明再一个实施例还提供一种视频传输装置800,如图8所示,该视频传输装置800包括:存储器801、处理器802和通信接口803。

在一些实施例中,视频传输装置800还包括一个或多个处理器802,一个或多个存储器801,一个或多个处理器802共同地或单独地工作。可选地,视频传输装置800还可以包括输入装置(未示出)、输出装置(未示出)以及图像传感器(未示出)中的至少一个,这些组件通过总线系统和/或其它形式的连接机构(未示出)互连。

存储器801用于存储可执行指令,例如用于存储用于实现根据本发明实施例的自动调整视频直播码率的方法中的相应步骤和程序指令。可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。

输入装置可以是用户用来输入指令的装置,例如可以是用户输入控制直播开始、直播结束等指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

输出装置可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个,本实施例中,输出装置可以包括显示器用于显示直播画面等。

通信接口803用于视频传输装置800和其他设备(例如直播服务器)之间进行通信,包括有线或者无线方式的通信。视频传输装置800可以接入基于通信标准的无线网络,如wifi、2g、3g、4g、5g或它们的组合。在一个示例性实施例中,通信接口经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信接口803还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

处理器802可以是中央处理单元(cpu)、图像处理单元(gpu)、专用集成电路(asic)、现场可编程门阵列(fpga)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制视频传输装置中的其它组件以执行期望的功能。处理器802能够执行存储器801中存储的所述指令,以执行本文描述的自动调整视频直播码率的方法300中的相应步骤。例如,处理器802能够包括一个或多个嵌入式处理器、处理器核心、微型处理器、逻辑电路、硬件有限状态机(fsm)、数字信号处理器(dsp)或它们的组合。

在一个示例中,处理器802用于执行所述存储器中存储的所述指令,使得所述处理器执行以下动作,所述动作包括:获取视频传输装置当前向服务器推送视频流时的当前网络带宽;对所述当前网络带宽进行离散化处理,以获得离散化的当前网络带宽;根据所述离散化的当前网络带宽和所述视频传输装置的当前设定码率,自动调整所述当前设定码率;基于调整后的当前设定码率,推送视频流至所述服务器。

可选地,所述离散化的当前网络带宽为以离散化间隔对所述当前网络带宽进行取整而获得。进一步,所述离散化的当前网络带宽为以所述离散化间隔对所述当前网络带宽向下取整而获得的数值。

进一步,根据所述离散化的当前网络带宽和所述视频传输装置的当前设定码率,自动调整所述当前设定码率,包括:若所述当前设定码率大于所述离散化的当前网络带宽,则降低所述当前设定码率;若所述当前设定码率小于所述离散化的当前网络带宽,则增大所述当前设定码率。

可选地,所述当前设定码率处于第一阈值码率和第二阈值码率之间,其中,所述第二阈值码率大于所述第一阈值码率。

在一个示例中,若所述当前设定码率大于所述离散化的当前网络带宽,则所述调整后的当前设定码率为所述离散化的当前网络带宽和所述第一阈值码率中的较大者。在另一个示例中,若所述当前设定码率小于所述离散化的当前网络带宽,则所述调整后的当前设定码率为在所述当前设定码率上增加至少一个码率增加量后获得的码率数值和所述第二阈值码率中的较小者。进一步,所述码率增加量小于离散化间隔,所述离散化间隔用于对所述当前网络带宽进行离散化处理,可选地,2倍的所述码率增加量小于所述离散化间隔。

在一个示例中,视频传输装置800为视频采集装置,所述视频采集装置用于采集视频直播的视频流,并推送至所述服务器。例如视频采集装置可以为相机(例如,手持云台相机)、手机、平板电脑、智能穿戴设备、计算机之类的设备。

在另一示例中,所述视频传输装置800还可以用于从视频采集装置接收视频直播的视频流,所述视频采集装置用于采集所述视频流并将所述视频流发送至所述视频传输装置,而视频传输装置800向服务器103推送该视频流,所述视频传输装置800例如可以包括终端设备,该终端设备可以是例如移动计算或通信设备、智能手机、可穿戴设备、计算机、台式计算机、笔记本、平板电脑等。该终端设备上还可以安装有应用程序app用于控制视频采集装置,该终端设备(例如智能手机)可以和视频采集装置(例如相机)通信连接,从而可以从视频采集装置接收视频直播的视频流,并向服务器推送该视频流。

根据本发明实施例的视频传输装置800,能够动态监测当前直播时的网络环境(也即当前网络带宽),自适应调节视频传输装置的直播码率,从而有效缓解直播卡顿及直播延迟,提高用户体验。并且,视频传输装置800在获取到当前网络带宽后首先进行离散化处理,降低了码率的频繁调节以及降低了码率调节的震荡,提升了稳定性。

本发明另一个实施例还提供一种服务器900,如图9所示,该服务器900包括:存储器901、处理器902和通信接口903。

在一些实施例中,服务器900还包括一个或多个处理器902,一个或多个存储器901,一个或多个处理器902共同地或单独地工作。可选地,服务器900还可以包括输入装置(未示出)、输出装置(未示出)中的至少一个,这些组件通过总线系统和/或其它形式的连接机构(未示出)互连。

存储器901用于存储可执行指令,例如用于存储用于实现根据本发明实施例的自动调整视频直播码率的方法700中的相应步骤和程序指令。可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。

输入装置可以是用户用来输入指令的装置,例如可以是用户输入控制直播开始、直播结束等指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

输出装置可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个,本实施例中,输出装置可以包括显示器用于显示直播画面等。

通信接口903用于服务器900和其他设备(例如直播服务器)之间进行通信,包括有线或者无线方式的通信。服务器900可以接入基于通信标准的无线网络,如wifi、2g、3g、4g、5g或它们的组合。在一个示例性实施例中,通信接口经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信接口903还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

处理器902可以是中央处理单元(cpu)、图像处理单元(gpu)、专用集成电路(asic)、现场可编程门阵列(fpga)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制视频传输装置中的其它组件以执行期望的功能。处理器902能够执行存储器901中存储的所述指令,以执行本文描述的自动调整视频直播码率的方法700中的相应步骤,为避免重复在此不再赘述,例如,处理器902能够包括一个或多个嵌入式处理器、处理器核心、微型处理器、逻辑电路、硬件有限状态机(fsm)、数字信号处理器(dsp)或它们的组合。

服务器900或是能够接收输入、处理输入并生成输出数据的电子设备。电子设备可以是通用计算机,例如台式计算机、平板计算机、笔记本电脑,电子设备还可以是虚拟计算设备,例如托管在云中的虚拟机等。

根据本发明实施例的服务器900,能够动态监测当前直播时的网络环境(也即当前网络带宽),自适应调节视频传输装置的直播码率,使视频传输装置以更佳的码率进行推流,从而有效缓解直播卡顿及直播延迟,提高用户体验。并且,服务器900在获取到当前网络带宽后首先进行离散化处理,降低了码率的频繁调节以及降低了码率调节的震荡,提升了稳定性。

在其他实施例中还提供一种如图1所示的系统,该系统由于包括前述的视频传输装置和服务器,因此也就具有前述实施例中的视频传输装置和服务器的相关功能,从而实现同样的优点。

另外,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行存储装置存储的所述程序指令,以实现本文所述的本发明实施例中(由处理器实现)的功能以及/或者其它期望的功能,例如以执行根据本发明实施例的自动调整视频直播码率的方法300、700的相应步骤,在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

例如,所述计算机存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1