码率自适应调节方法、装置及电子设备与流程

文档序号:12038284阅读:272来源:国知局
码率自适应调节方法、装置及电子设备与流程

本发明涉及网络通信技术领域,具体而言,涉及一种码率自适应调节方法、装置及电子设备。



背景技术:

延迟时间多少是衡量一个直播服务优劣的重要指标,当延迟比较大时,作为观众要在比较长的时间后,才能看到在主播侧的画面。如果涉及到主播与观众的互动,那么双方的互动信息延迟将非常的大,极大的影响了用户体验。直播延迟的造成是多方面的,其中,主要一种延迟产生于直播源产生端,也就是主播端产生的直播延迟,主播一般采用一些直播软件来进行直播,直播软件将主播端的视频、声音等信息通过编码,然后通过相关的网络传输协议,发送至网络服务提供商,所以主播端产生的直播延迟主要就是由直播软件造成的,而直播软件造成的延迟主要是由主播的上传网络不够而导致的。

现有的解决延迟的方法是丢帧,通过丢弃相关的视频帧或者音频帧,来减少直播软件中的编码队列缓存,来实现降低延迟。虽然这种方法在一定程度上减少了直播延迟,但是丢弃了相关的直播信息,会使观众观看视频时产生卡顿,仍然会影响用户的体验度。因此,如何实现在丢帧的过程中,避免观看端的视频卡顿现象的问题十分重要。



技术实现要素:

有鉴于此,本发明的目的在于提供一种码率自适应调节方法、装置及电子设备,以改善上述问题。

本发明实施例提供一种码率自适应调节方法,应用于与服务器通信连接的用户端,对直播音视频进行码率自适应调节,所述方法包括:

根据当前系统网络状态设定最大码率和最低码率,根据所述最大码率和所述最低码率计算得到第一码率,以所述第一码率对传输的媒体流进行编码;

判断预设时长内是否出现丢帧,若出现丢帧,则降低所述第一码率得到第三码率,以所述第三码率对传输的媒体流进行编码;

若未出现丢帧,则增大所述第一码率得到第二码率,以所述第二码率对传输的媒体流进行编码;

判断以所述第二码率进行编码时是否出现丢帧,若出现丢帧,则降低所述第二码率得到第三码率,以所述第三码率对传输的媒体流进行编码。

进一步地,所述根据所述最大码率和所述最低码率计算得到第一码率的步骤,包括:

将所述最大码率和所述最低码率按第一计算式:b1=(b(max)+b(min))/2计算得到第一码率,其中,b1为第一码率,b(max)为设定的最大码率,b(min)为设定的最低码率。

进一步地,所述增大所述第一码率得到第二码率的步骤,包括:

将系统最低码率重置为计算得到的所述第一码率;

将重置后的最低码率和设定的所述最大码率按第二计算式:b2=(b(max)+b’(min))/2计算得到第二码率,其中,b2为第二码率,b(max)为设定的最大码率,b’(min)为重置后的最低码率。

进一步地,所述第三码率通过以下步骤获得:

将系统最大码率重置为计算得到的所述第一码率并将系统最低码率设置为设定的所述最低码率,或将系统最大码率重置为所述第二码率并将系统最低码率设置为重置后的最低码率;

将重置后的最大码率和重新设置后的最低码率按第三计算式:b3=(b’(max)+b”(min))/2计算得到第三码率,其中,b3为第三码率,b’(max)为重置后的最大码率,b”(min)为重新设置的最低码率。

进一步地,所述方法还包括:

检测当前系统是否出现丢包,若出现丢包,则触发码率调节请求;

所述根据当前系统网络状态设定最大码率和最低码率的步骤在获得所述码率调节请求之后触发执行。

进一步地,所述媒体流包括视频流和音频流,检测当前系统是否出现丢包通过以下步骤执行:

在网络传输线程中,检测待发送队列中的视频流数据包或音频流数据包是否累积达到预设阈值,若达到所述预设阈值,则判定当前系统出现丢包,并触发丢包逻辑。

进一步地,所述视频流数据包和所述音频流数据包通过以下步骤获得:

在视频编码线程中,对获得的直播图像进行编码,将编码后生成的视频流数据包投递至所述网络传输线程;

在音频编码线程,对获得的直播声音进行编码,将编码后生成的音频流数据包投递至所述网络传输线程。

本发明另一实施例还提供一种码率自适应调节装置,应用于与服务器通信连接的用户端,对直播音视频进行码率自适应调节,所述码率自适应调节装置包括:

设定模块,用于根据当前系统网络状态设定最大码率和最低码率,根据所述最大码率和所述最低码率计算得到第一码率,以所述第一码率对传输的媒体流进行编码;

判断模块,用于判断预设时长内是否出现丢帧;

第一修改模块,用于在出现丢帧时,降低所述第一码率得到第三码率,以所述第三码率对传输的媒体流进行编码;

第二修改模块,用于在未出现丢帧时,增大所述第一码率得到第二码率,以所述第二码率对传输的媒体流进行编码;

第二判断模块,用于判断以所述第二码率进行编码时是否出现丢帧;

第三修改模块,用于在出现丢帧时,降低所述第二码率得到第三码率,以所述第三码率对传输的媒体流进行编码。

本发明另一实施例还提供一种电子设备,包括:

存储器;

处理器;及

码率自适应调节装置,所述码率自适应调节装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模块。

本发明另一实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的码率自适应调节方法的步骤。

本发明实施例提供的码率自适应调节方法、装置及电子设备,根据系统网络状态得到相应的码率,并利用得到的码率对传输的媒体流进行编码。通过检测数据丢帧情况,根据数据丢帧情况相应地增大或降低码率,利用修改后的码率对媒体流进行编码。通过上述的丢帧及码率自适应的调整,有效地解决了因直播延迟而采用丢帧后,因丢帧而引起的观看端卡顿的问题。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的一种码率自适应调节方法的应用场景示意图。

图2为本发明实施例提供的用户端的示意性结构框图。

图3为本发明实施例提供的码率自适应调节方法的流程图。

图4为本发明实施例提供的码率自适应调节方法的另一流程图。

图5为本发明实施例提供的码率自适应调节方法的另一流程图。

图6为图3中步骤s104的子步骤的流程图。

图7为本发明实施例提供的码率自适应调节方法的另一流程图。

图8为本发明实施例提供的码率自适应调节装置的功能模块框图。

图9为本发明实施例提供的码率自适应调节装置的另一功能模块框图。

图10为本发明实施例提供的码率自适应调节装置的另一功能模块框图。

图11为本发明实施例提供的第二修改模块的功能模块框图。

图12为本发明实施例提供的码率自适应调节装置的另一功能模块框图。

图标:100-用户端;110-码率自适应调节装置;111-设定模块;112-第一判断模块;113-第一修改模块;114-第二修改模块;1141-重置单元;1142-计算单元;115-第二判断模块;116-第三修改模块;117-退出判断模块;118-视频编码模块;119-音频编码模块;1110-检测模块;1111-判定模块;1112-重置模块;1113-计算模块;120-处理器;130-存储器;200-服务器。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

码率是音视频编码过程中一个非常重要的参数,其直接影响到了音频和视频的清晰度,码率越大,音视频的清晰度越大,码率越小,音视频的清晰度越小。但是码率越大,通过网络传输时,所传输的字节量就越多,所消耗的网络带宽就越大,所以就需要更大的网络上传速度。而直播软件造成的延迟主要是由主播的上传网络不够而导致的。通常解决延迟的方法是丢帧,通过丢弃相关的视频帧或者音频帧,来减少直播软件中的编码队列缓存,来实现降低延迟。虽然这种方法在一定程度上减少了直播延迟,但是丢弃了相关的直播信息,会使观众观看视频时产生卡顿,仍然会引起用户的体验度。因此,本发明提出一种在丢帧过程中,通过网络状态进行码率自适应调节的方案,从而既能降低直播延迟,又不会产生卡顿的问题。

请参阅图1,为本发明实施例提供的一种码率自适应调节方法的应用场景示意图。该场景包括用户端100和服务器200。所述用户端100通过网络与所述服务器200通信连接,以进行数据通信或交互。在本实施例中,所述用户端100可以包括多个(图中只示出一个),多个所述用户端100与所述服务器200通信连接。在本实施例中,所述的用户端100主要针对主播端所使用的用户端100。

其中,所述用户端100可以是但不限于个人电脑、平板电脑、智能手机、移动上网设备等。所述用户端100上安装有视频直播应用软件,以供用户进行视频直播。所述服务器200为对应于所述用户端100上安装的视频直播应用软件的后台服务器。所述服务器200可以是网络服务器、数据库服务器,可以是单独的服务器也可以是服务器集群等。

请参阅图2,为本发明实施例提供的一种电子设备的示意性结构框图。在本实施例中,所述电子设备可以为上述的用户端100,所述用户端100包括码率自适应调节装置110、处理器120及存储器130。其中,所述存储器130与所述处理器120之间直接或间接的电性连接,以实现数据的传输或交互。所述码率自适应调节装置110包括至少一个可以软件或固件的形式存储于所述存储器130中或固化在所述用户端100的操作系统中的软件功能模块。所述处理器120用于执行所述存储器130中存储的可执行模块,例如所述码率自适应调节装置110包括的软件功能模块或计算机程序。

请参阅图3,是本发明实施例提供的一种应用于上述用户端100的码率自适应调节方法的流程图。所应说明的是,本发明提供的方法不以图3及以下所述的具体顺序为限制。下面将对图3中示出的各步骤进行详细说明。

步骤s101,根据当前系统网络状态设定最大码率和最低码率,根据所述最大码率和所述最低码率计算得到第一码率,以所述第一码率对传输的媒体流进行编码。

主播端的用户端100发布的媒体流是通过直播软件来完成的,而直播软件对媒体流进行相应处理后,通过rtmp(realtimemessagingprotocol,实时消息传输协议)推送至服务器200。在系统中会有三个不同的线程来分别完成相应的功能,包括视频编码线程、音频编码线程以及网络传输线程。

其中,网络传输线程主要作用是对媒体流数据包进行传输,其中媒体流数据包包括视频流数据包和音频流数据包。请参阅图4,网络传输线程中的视频流数据包和音频流数据包主要是通过以下步骤获得:

步骤s201,在视频编码线程中,对获得的直播图像进行编码,将编码后生成的视频流数据包投递至所述网络传输线程。

步骤s203,在音频编码线程中,对获得的直播声音进行编码,将编码后生成的音频流数据包投递至所述网络传输线程。

编码器是指利用相关算法对原始的数据进行编码压缩,从而利于原始数据的存储与传输,编码器可以是软件形式的,也可以是硬件形式的。在多媒体领域,常用的编码器主要为视频编码器和音频编码器,在直播软件中视频编码器主要采用的是h264编码器,音频编码器主要采用的是aac编码器。编码后产生的压缩后数据,通常称为相应的包。

可选地,在视频编码线程中,按照预先设置的帧率,对直播图像利用h264视频编码器对图像进行编码。在音频编码线程中,主要是对采集到的系统声音利用aac音频编码器对声音进行编码。

在网络传输线程中,将视频编码线程和音频编码线程编码后生成的数据包利用rtmp协议推送至服务器200,而直播延迟就是在这个过程中产生的。因此,在本实施例中,所述码率自适应调节方法还包括以下步骤:检测当前系统是否出现丢包,若出现丢包,则触发码率调节请求。在本实施例中,步骤根据当前系统网络状态设定最大码率和最低码率是在获得该码率调节请求之后触发而执行的。请参阅图5,而对于如何检测当前系统是否出现丢包则可以根据以下步骤获得:

步骤s301,在网络传输线程中,检测待发送队列中的视频流数据包或音频流数据包是否累积达到预设阈值,若达到预设阈值,则执行以下步骤s203。

步骤s303,判定当前系统出现丢包,并触发丢包逻辑。

由于在网络传输线程中是将来自视频编码线程和音频编码线程中的数据包按照时间顺序,依次存储在发送队列中,然后再一个一个地发送至rtmp服务器。如果上一个数据包没有发送完成,那么下一个数据包就只能等待上一个数据包发送完成之后才能发送。这样的话,如果网络上传速度不够,那么发送队列中就会随着直播时间的增加,就会累积非常多的视频流数据包和音频流数据包。这也是在主播端延迟发生的根本原因。

为了解决因为上传速度不够而导致的直播延迟,可采用丢帧的方式来优化直播延迟。当网络传输线程中的待发送队列中的数据包累积达到预设阈值时,则会触发丢包逻辑,在检测到系统出现丢包时,则会触发码率调节请求。

可选地,网络传输线程所传输的媒体流数据包括了视频流数据包和音频流数据包。在对媒体流数据包的丢帧处理算法逻辑上可对视频流及音频流的丢帧优先级进行考虑。应当理解,对于一个视频来说,感官最重要的是声音,如果声音不流畅,观看者的体验将会非常的差,而如果视频有稍微的不流畅,还是能够接受的。并且,在网络传输的代价上,视频的开销会比音频更大。因为视频所占的体积大小比音频要大的多,所以在丢帧策略中通常优先丢弃视频流数据包。

但是在丢弃视频过程中,并不是任何一个视频帧都是可以丢弃的,如果这样的话,就有可能导致观看端的播放器画面发生花屏的现象。在丢弃视频帧时,首先需要判定该视频流数据包是否为关键帧,如果不是关键帧,则该视频流数据包不能丢弃。如果是关键帧,则该视频流数据包将被丢弃,并且在该帧以后的所有非关键帧都将会被丢弃。当丢帧后队列中剩余的数据包达到预设阈值后,则可以停止丢帧,但是需要等到视频关键帧时才能真正地停止丢帧。即丢弃视频帧时是从关键帧开始丢弃,并且一直丢弃到关键帧为止才结束。

可选地,在检测到系统出现丢包时,则会触发码率调节请求。在触发了码率调节请求之后,系统响应该调节请求,并且根据当前的网络状态设定一最大码率和一最低码率,例如,将最大码率设定为b(max),将最低码率设定为b(min)。根据设定的最大码率和最低码率计算出第一码率,并以计算出的第一码率对传输的视频流和音频流进行编码。

可选地,根据最大码率和最低码率计算得到第一码率可按以下方式执行:

将所述最大码率和所述最低码率按第一计算式:b1=(b(max)+b(min))/2计算得到第一码率,其中,b1为第一码率,b(max)为设定的最大码率,b(min)为设定的最低码率。

步骤s102,判断预设时长内是否出现丢帧,若出现丢帧,则执行以下步骤s103,若未出现丢帧,则执行以下步骤s104。

步骤s103,降低所述第一码率得到第三码率,以所述第三码率对传输的媒体流进行编码。

步骤s104,增大所述第一码率得到第二码率,以所述第二码率对传输的媒体流进行编码。

步骤s105,判断以所述第二码率进行编码时是否出现丢帧,若出现丢帧,则执行以下步骤s106。

步骤s106,降低所述第二码率得到第三码率,以所述第三码率对传输的媒体流进行编码。

步骤s107,根据得到的所述第三码率判断是否满足退出条件,若满足退出条件,则结束码率自适应调节,若不满足退出条件,则检测预设时长内是否出现丢帧。

可选地,在对视频流和音频流进行编码及传输的过程中,系统会实时检测数据包是否出现丢帧现象。如果在预设时长内未出现丢帧,则表明当前采用的码率能够适应于当前的网络上传速度,因此可在当前码率的基础上增大码率值。此时,可在第一码率的基础上进行码率增大,得到第二码率,以得到的第二码率进行编码。

可选地,请参阅图6,在本实施例中,增大第一码率得到第二码率可按以下方式进行:

步骤s1041,将系统最低码率重置为计算得到的所述第一码率。

步骤s1043,将重置后的最低码率和设定的所述最大码率按第二计算式:b2=(b(max)+b’(min))/2计算得到第二码率,其中,b2为第二码率,b(max)为设定的最大码率,b’(min)为重置后的最低码率。

可选地,增大第一码率的方式可以是将当前系统的最低码率重置为所设定的最大码率b(max)和最低码率b(min)的平均值,即计算得到的第一码率b1。则通过b2=(b(max)+b’(min))/2计算得到第二码率,其中,b2为第二码率,b(max)为设定的最大码率,b’(min)为重置后的最低码率,b’(min)=b1=(b(max)+b(min))/2。以计算出的第二码率对视频流和音频流进行编码。若在预设时长内仍未出现丢帧,则表明当前得到的第二码率依然可以适应于当前网络的上传速度,则可继续降低第二码率,并以降低后的第二码率进行编码,按此逻辑一直到有b2(n)=(b2(n-1)+b(max))/2,其中,b(min)=b2(n-1)并且b2(n)<b2,n表示第二码率更新的次数。

若在以第一码率进行编码过程中,检测出数据包出现了丢帧则需要在第一码率的基础上降低第一码率得到第三码率,以第三码率进行编码。若在以第二码率进行编码过程中出现了丢帧,则需要在第二码率的基础上降低第二码率得到第三码率,以第三码率进行编码。

可选地,请参阅图7,在本实施例中,将上述两种情况均纳入考虑,则所述第三码率可通过以下步骤来获得:

步骤s401,将系统最大码率重置为计算得到的所述第一码率并将系统最低码率设置为设定的所述最低码率,或将系统最大码率重置为所述第二码率并将系统最低码率设置为重置后的最低码率。

步骤s403,将重置后的最大码率和重新设置后的最低码率按第三计算式:b3=(b’(max)+b”(min))/2计算得到第三码率,其中,b3为第三码率,b’(max)为重置后的最大码率,b”(min)为重新设置的最低码率。

可选地,在本实施例中,若在以第一码率进行编码时,出现了丢帧,则将系统最大码率重置为计算得到的第一码率b1,并且将系统最低码率设置为设定的最低码率b(min),再将重置后的最大码率和重新设置后的最低码率按第三计算式:b3=(b’(max)+b”(min))/2计算得到第三码率,其中,b3为第三码率,b’(max)为重置后的最大码率,b”(min)为重新设置的最低码率。此时的b’(max)=b1,b”(min)=b(min)。

若在以第二码率进行编码时出现了丢帧,则将系统最大码率重置为计算得到的第二码率,并且将系统最低码率设置为重置后的最低码率。即,若当前的第二码率为b2,表明当前的最低码率为b1,则重置后的最大码率即为b2,重新设置的最低码率即为b1。再将重置后的最大码率和重新设置后的最低码率按第三计算式:b3=(b’(max)+b”(min))/2计算得到第三码率,其中,b3为第三码率,b’(max)为重置后的最大码率,b”(min)为重新设置的最低码率。此时的b’(max)=b2,b”(min)=b1。按照此逻辑,可不断降低编码码率,以适应于当前的网络上传速度,一直到更新后得到的第三码率与重新设置的最低码率之间的差的绝对值小于等于预设值为止,例如100,此时所得到的第三码率即为最优的码率,可以以该最优码率对媒体流进行编码,以避免因出现丢帧而导致的视频卡顿现象。

在实施时,例如,在最开始时,设定的最大码率b(max)=2000,最低码率b(min)=0,计算得到的第一码率b1=(b(max)+b(min))/2=(2000+0)/2=1000,以1000的第一码率对媒体流进行编码。若检测到此时未出现丢帧现象,则增大第一码率,将最低码率重置为1000,得到的第二码率为b2=(1000+2000)/2=1500,然后以1500的码率进行编码。若此时出现了丢帧,则降低第二码率得到第三码率,此时,将系统最大码率重置为1500,将最低码率设置为1000,然后重复上述步骤,得到第三码率为b3=(1500+1000)/2=1250,以1250的码率进行编码。若此时未出现丢帧,则最低码率设置为1250,得到新的第二码率b2=(1250+1500)/2=1375,然后以1375码率对视频进行编码,若没有丢帧,则系统当前最优的码率就为1375。若出现了丢帧,则系统最优码率就为1250码率。在满足退出条件的情况下,可结束对码率的动态调节,并以该最优的码率进行直播。

请参阅图8,为本发明实施例提供的一种码率自适应调节装置110的功能模块框图。所述码率自适应调节装置110包括设定模块111、第一判断模块112、第一修改模块113、第二修改模块114、第二判断模块115、第三修改模块116以及退出判断模块117。

所述设定模块111用于根据当前系统网络状态设定最大码率和最低码率,根据所述最大码率和所述最低码率计算得到第一码率,以所述第一码率对传输的媒体流进行编码。具体地,该设定模块111可用于执行图3中所示的步骤s101,具体的操作方法可参考步骤s101的详细描述。

所述第一判断模块112用于判断预设时长内是否出现丢帧。具体地,该第一判断模块112可用于执行图3中所示的步骤s102,具体的操作方法可参考步骤s102的详细描述。

所述第一修改模块113用于在出现丢帧时,降低所述第一码率得到第三码率,以所述第三码率对传输的媒体流进行编码。具体地,该第一修改模块113可用于执行图3中所示的步骤s103,具体的操作方法可参考步骤s103的详细描述。

所述第二修改模块114用于在未出现丢帧时,降低所述第一码率得到第二码率,以所述第二码率对传输的媒体流进行编码。具体地,该第二修改模块114可用于执行图3中所示的步骤s104,具体的操作方法可参考步骤s104的详细描述。

所述第二判断模块115用于判断以所述第二码率进行编码时是否出现丢帧。具体地,该第二判断模块115可用于执行图3中所示的步骤s105,具体的操作方法可参考步骤s105的详细描述。

所述第三修改模块116用于在出现丢帧时,降低所述第二码率得到第三码率,以所述第三码率对传输的媒体流进行编码。具体地,该第三修改模块116可用于执行图3中所示的步骤s106,具体的操作方法可参考步骤s106的详细描述。

所述退出判断模块117用于根据得到的所述第三码率判断是否满足退出条件。具体地,该退出判断模块117可用于执行图3中所示的步骤s107,具体的操作方法可参考步骤s107的详细描述。

请参阅图9,在本实施例中,所述码率自适应调节装置110还包括视频编码模块118和音频编码模块119。

所述视频编码模块118用于在视频编码线程中,对获得的直播图像进行编码,将编码后生成的视频流数据包投递至所述网络传输线程。具体地,该视频编码模块118可用于执行图4中所示的步骤s201,具体的操作方法可参考步骤s201的详细描述。

所述音频编码模块119用于在音频编码线程中,对获得的直播声音进行编码,将编码后生成的音频流数据包投递至所述网络传输线程。具体地,该音频编码模块119可用于执行图4中所示的步骤s203,具体的操作方法可参考步骤s203的详细描述。

请参阅图10,在本实施例中,所述码率自适应调节装置110还包括检测模块1110和判定模块1111。

所述检测模块1110用于在网络传输线程中,检测待发送队列中的视频流数据包或音频流数据包是否累积达到预设阈值。具体地,该检测模块1110可用于执行图5中所示的步骤s301,具体的操作方法可参考步骤s301的详细描述。

所述判定模块1111用于在达到预设阈值时,判定当前系统出现丢包,并触发丢包逻辑。具体地,该判定模块1111可用于执行图5中所示的步骤s303,具体的操作方法可参考步骤s303的详细描述。

可选地,请参阅图11,在本实施例中,所述第二修改模块114包括重置单元1141以及计算单元1142。

所述重置单元1141用于将系统最低码率重置为计算得到的所述第一码率。具体地,该重置单元1141可用于执行图6中所示的步骤s1041,具体的操作方法可参考步骤s1041的详细描述。

所述计算单元1142用于将重置后的最低码率和设定的所述最大码率按第二计算式:b2=(b(max)+b’(min))/2计算得到第二码率,其中,b2为第二码率,b(max)为设定的最大码率,b’(min)为重置后的最低码率。具体地,该计算单元1142可用于执行图6中所示的步骤s1043,具体的操作方法可参考步骤s1043的详细描述。

可选地,请参阅图12,在本实施例中,所述码率自适应调节装置110还包括重置模块1112以及计算模块1113。

所述重置模块1112用于将系统最大码率重置为计算得到的所述第一码率并将系统最低码率设置为设定的所述最低码率,或将系统最大码率重置为所述第二码率并将系统最低码率设置为重置后的最低码率。具体地,该重置模块1112可用于执行图7中所示的步骤s401,具体的操作方法可参考步骤s401的详细描述。

所述计算模块1113用于将重置后的最大码率和重新设置后的最低码率按第三计算式:b3=(b’(max)+b”(min))/2计算得到第三码率,其中,b3为第三码率,b’(max)为重置后的最大码率,b”(min)为重新设置的最低码率。具体地,该计算模块1113可用于执行图7中所示的步骤s403,具体的操作方法可参考步骤s403的详细描述。

此外,本发明另一较佳实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的码率自适应调节方法的步骤。

综上所述,本发明提供的一种码率自适应调节方法、装置及电子设备,根据系统网络状态得到相应的码率,并利用得到的码率对传输的媒体流进行编码。通过检测数据丢帧情况,根据数据丢帧情况相应的增大或降低码率,利用修改后的码率对媒体流进行编码。通过丢帧及码率自适应的调整,有效地解决了因直播延迟而采用丢帧后,因丢帧而引起的观看端卡顿的问题。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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