CN118055260A - 视频处理方法、装置、设备与计算机存储介质 - Google Patents
视频处理方法、装置、设备与计算机存储介质 Download PDFInfo
- Publication number
- CN118055260A CN118055260A CN202211430328.8A CN202211430328A CN118055260A CN 118055260 A CN118055260 A CN 118055260A CN 202211430328 A CN202211430328 A CN 202211430328A CN 118055260 A CN118055260 A CN 118055260A
- Authority
- CN
- China
- Prior art keywords
- code rate
- video
- network delay
- delay state
- target
- 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
- 238000003672 processing method Methods 0.000 title abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 30
- 230000009467 reduction Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012790 confirmation Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供一种视频处理方法、装置、设备与计算机存储介质,该方法包括:通过基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态,再根据网络延时状态调整初始码率,以得到目标码率,采用目标码率对第二视频源数据进行编码,得到目标码率对应的目标视频编码数据,并输出目标视频编码数据。通过对视频数据缓存队列长度的检测,来确认网络延时状态,并根据网络延时状态实时调整视频数据量,进而保障视频播放的稳定性,提高用户观看体验。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及视频处理方法、装置、设备与计算机存储介质。
背景技术
随着互联网技术的快速发展,视频直播服务的应用也愈加广泛。视频直播是指利用互联网及流媒体技术进行直播。
然而由于网络信号的不稳定会对流媒体的上传和下载速率造成影响,尤其是在移动网络环境中播放效果不够理想,常常出现卡顿、花屏使得用户的观感变差,因此,亟待提出一种能提高视频播放流畅度的视频处理方法。
发明内容
本说明书的主要目的在于提供一种视频处理方法、装置、设备与计算机存储介质,旨在实现在网络抖动的情况下保证视频播放的流畅度。所述技术方案如下:
第一方面,本发明实施例提供了一种视频处理方法,包括:
基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,所述视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;
基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态;
基于所述网络延时状态调整所述初始码率,以得到目标码率;
采用所述目标码率对所述第二视频源数据进行编码,得到所述目标码率对应的目标视频编码数据,并输出所述目标视频编码数据,所述第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
第二方面,本发明实施例提供一种视频处理装置,包括:
获取模块,用于基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,所述视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;
网络延时确认模块,用于基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态;
码率调整模块,用于基于所述网络延时状态调整所述初始码率,以得到目标码率;
编码模块,用于采用所述目标码率对所述第二视频源数据进行编码,得到所述目标码率对应的目标视频编码数据,并输出所述目标视频编码数据,所述第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述方法的步骤。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
在本发明实施例中,通过基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态,再根据网络延时状态调整初始码率,以得到目标码率,采用目标码率对第二视频源数据进行编码,得到目标码率对应的目标视频编码数据,并输出目标视频编码数据。通过对视频数据缓存队列长度的检测,来确认网络延时状态,并根据网络延时状态实时调整视频数据量,进而保障视频播放的稳定性,提高用户观看体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种视频处理方法的举例示意图;
图2是本发明实施例提供的一种视频处理方法的流程示意图;
图3为本发明实施例提供了一种视频处理方法的直播过程示意图;
图4是本发明实施例提供的一种视频处理方法的流程示意图;
图5为本发明实施例提供了一种视频处理方法的自动丢包流程示意图;
图6为本发明实施例提供了一种视频处理方法的码率自适应流程示意图;
图7是本发明实施例提供的一种视频处理装置的结构示意图;
图8是本发明实施例提供的一种视频处理设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
视频处理装置可以为手机、电脑、平板电脑、智能家居设备、可穿戴设备或车载设备等终端设备,也可以为终端设备中用于实现视频处理方法的模块,视频处理装置可以基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;基于至少两个队列长度值之间的长度关系信息,确认网络延时状态;基于网络延时状态调整所述初始码率,以得到目标码率;采用目标码率对所述第二视频源数据进行编码,得到目标码率对应的目标视频编码数据,并将目标视频编码数据输出,第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
请一并参见图1,为本发明实施例提供了一种视频处理方法的举例示意图,具体的,主播端设备内安装有主播客户端。该主播客户端设备可以是具有采集、编码、数据发送功能的设备,如电脑、智能摄像设备。对应地,观众端设备内安装有观众客户端,需要说明的是,主播端设备可以同时是观众端设备,可以在同一客户端上集合主播客户端与观众客户端的功能。主播端采集第一视频源数据,并基于初始码率对第一视频源数据编码得到初始视频编码数据,将初始视频编码数据存入视频数据缓存队列,再将视频数据缓存队列中的初始视频编码数据上传到云端,观众端联网后从云端下载初始视频编码数据进行观看。进一步地,主播端还可以基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,基于至少两个队列长度值之间的长度关系信息来确认网络延时状态,根据网络延时状态调整初始码率,得到目标码率,采用目标码率对在第一视频源数据之后采集的第二视频源数据进行编码,得到目标视频编码数据,并将目标视频编码数据存入视频数据缓存队列后上传到云端。
需要说明的是,云端用作数据存储,也可以替换为其他类型的服务器。
下面结合具体的实施例对本说明书提供的视频处理方法进行详细说明。
请参见图2,为本发明实施例提供了一种视频处理方法的流程示意图。如图2所示,本发明实施例的所述方法可以包括以下步骤S102-S106。
S101,基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,所述视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;
S102,基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态;
S103,基于所述网络延时状态调整所述初始码率,以得到目标码率;
S104,采用所述目标码率对所述第二视频源数据进行编码,得到所述目标码率对应的目标视频编码数据,并输出所述目标视频编码数据,所述第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
本实施例视频处理方法用于视频直播业务,如即时直播业务,视频点播业务。可以理解的,视频直播业务通常包括视频提供端、服务器和视频播放端,视频提供端将用户需要观看的视频推流到服务器,视频播放端从服务器拉流播放。在推流和拉流的过程中通常是基于网络进行数据传输,当网络出现抖动时,将会影响视频观看的流畅度。因此,参照图3,图3为本发明实施例提供了一种视频处理方法的直播过程示意图,通常会采用延时的方式保证视频的流畅度,也即视频采集处理后的待播放视频数据进行视频编码以得到视频编码数据,然后将视频编码数据将存放进视频数据缓冲队列中,以对数据进行缓存,再将编码后的数据发送到服务器以供用户拉流观看。然而,由于网络信号的好坏不一,现有方案直播延时会一直变大,比如原来直播半分钟的延时为3秒,则变大到10秒,这种情况对于在线教育、体育直播、新闻直播等等需要保证实时性的应用场景来说,会降低视频观看用户的观看体验。因此,提出了本发明的视频处理方法旨在保证低延时的同时,提高直播的流畅性,改善用户体验。
以下将对各个步骤进行详细说明:
S101,基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,所述视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;
具体的,设置预设时间间隔,获取视频数据缓存队列的队列长度值,队列长度值的数量至少为2。可以理解的,编码是一直往视频数据缓存队列存入数据(生产数据),同时视频数据缓存队列一直把队列中的编码后的初始视频编码数据发送给云端(消费数据),如果网络差的话,同样大小的初始视频编码数据,从视频数据缓存队列发送到播放端的速度变慢,同时导致视频数据缓存队列中数据积压,导致视频播放延时变大。因此,基于预设时间间隔,获取视频数据缓存队列的队列长度值,队列长度值用于表征视频数据缓存队列的长短,也即未上传到云端的数据量的大小。
示例性的,通过获取视频数据缓存队列中各数据包(视频编码数据)的存入时间,计算缓存队列中数据包的时间跨度,作为队列长度值。通常第一视频源数据是按秒采集并编码的,对应的,预设时间间隔可以为每秒获取一次缓存队列的队列长度值,具体预设时间间隔可以根据实际情况去设定。其中,将当前采集的视频源数据称作第一视频源数据,第一视频源数据采用初始码率进行编码。
S102,基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态;
可以理解的,如果采用同样的码率对视频源数据进行编码的话,则每秒存入视频数据缓存队列的数据量是接近一致的,如果缓存队列中消费数据的速度变慢,则队列长度值会变大。因此,通过获取视频数据缓存队列的队列长度值来判断网络延时状态。长度关系信息可以是队列长度值的平均值、队列长度值的总和、队列长度值的最值等等。
在获取到至少两个队列长度值之后,也即当获取的队列长度值数量达到预设统计数量后,确认各个队列长度值之间的长度关系信息。统计次数越少则对码率的调整频率越快,具体的所需要的队列长度值的数量可以基于应用的场景来确定,例如是教学场景,由于教师与学生之间有互动需求,比如教师提问学生回答,则期望频率能够适当地调整地快一点,从而最大程度上降低直播延时的发生,保障学生与教师之间沟通的顺畅,进而保障教学效果。
在一种可行的实施方式中,可以获取当前终端对应的队列长度值历史参考数值,例如,将当前计算的队列长度值的平均值与历史参考平均值进行比较,如果大于历史参考数值则认为是网络出现延时,若小于历史参考数值则认为是网络情况良好。
在又一种可行的实施方式中,通过设置预设阈值,基于预设阈值和长度关系信息进行网络延时判断。例如,队列长度值中最大值大于预设最大值,则判断网络发生了延时,队列长度值中最小值小于预设最小值则判断网络情况良好。
S103,基于所述网络延时状态调整所述初始码率,以得到目标码率;
具体的,根据网络延时状态对初始码率进行调整,从而得到目标码率。其中,初始码率是当前编码器正在使用码率,目标码率是由于为了便于传输便捷,采集的视频源数据通常会进行编码以压缩视频大小,由于网络抖动时上传速度慢无法改变,所以需要减少数据量,从而减少上传时间。因此,通过调整码率,来调整同样时间采集到的视频源数据的大小,其中,码率是编码器1秒内产生的数据量。如果网络延时状态为网络延时严重的话,则降低码率,如果网络延时状态为网络良好的话,则适当调高码率,具体的可以根据实际情况去设定。
S104,采用所述目标码率对所述第二视频源数据进行编码,得到所述目标码率对应的目标视频编码数据,并输出所述目标视频编码数据,所述第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
具体的,当调整得到目标码率后,则对接下来获取到的第二视频源数据进行编码,以得到目标视频编码数据,将目标视频编码数据存入视频数据缓存队列并上传到云端以供播放端拉流。
可以理解的,上述网络延时情况的判定可以重复执行,以实现实时监测网络延时情况,及时调整码率。
在本实施例中,通过基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态,再根据网络延时状态调整初始码率,以得到目标码率,采用目标码率对第二视频源数据进行编码,得到目标码率对应的目标视频编码数据,并输出目标视频编码数据。通过对视频数据缓存队列长度的检测,来确认网络延时状态,并根据网络延时状态实时调整视频数据量,进而保障视频播放的稳定性,提高用户观看体验。
请参见图4,为本发明实施例提供了一种视频处理方法的流程示意图。如图4所示,本发明实施例的所述方法可以包括以下步骤S201-S206。
S201,确认所述视频数据缓存队列的缓存容量是否已满;
可以理解的,由于视频数据缓存队列的容量是有限的,如果已满则无法存入新的数据,因此,需要缓存队列具有自动丢包的功能。具体的,确认视频数据缓存队列的缓存容量是否已满,若已满则需要进行自动丢包。
S202,若是,则将所述视频数据缓存队列中已输出的缓存视频编码数据删除;
如果视频数据缓存队列的缓存容量已满,则确认视频数据缓存队列中已经上传到云端的视频编码数据并删除,以便新采集的视频源数据存入。参照图5,图5为本发明实施例提供了一种视频处理方法的自动丢包流程示意图,在输入编码数据到视频数据缓存队列时,判断缓存(缓存容量)是否已满,若是则丢弃旧数据,也即已输出的缓存视频编码数据;若否,则建视频编码数据到缓存队列。需要说明的是,该判断缓存容量是否已满的步骤可以在任何时刻进行,也可以持续进行,或者每隔预设时间间隔进行一次,通过限制缓存队列的大小,当缓存队列已满时,丢弃旧的数据包,这样可以避免延时一直变大。
S203,每隔预设时间间隔,获取所述视频数据缓存队列中所述初始视频编码数据的时间标识;
在一种可行的实施方式中,每隔预设时间间隔,获取视频数据缓存队列中各初始视频编码数据的时间标识,其中,时间标识为初始视频编码数据编码完成进入缓存队列的时间。
S204,基于所述时间标识,计算所述初始视频编码数据的时间差,并将所述时间差确认为所述视频数据缓存队列的队列长度值;
由于第一视频源数据是按时间顺序采集并编码存入视频数据缓存队列的,因此,将视频数据缓存队列中第一个包的时间标识减去最后一个包的时间标识,得到的时间差作为队列长度值,单位优选为毫秒。
S205,获取所述队列长度值的平均值,以及至少两个所述队列长度值中的最大值和最小值之间的差值;
通过上述方式计算多次视频数据缓存队列的队列长度值,再基于多个队列长度值,计算队列长度值的平均值、队列长度值中的最大值和最小值之差。比如每秒计算1次队列长度值,连续计算5次,获得5个队列长度值,计算5个队列长度值的平均值,和最大值与最小值之间的差值。
S206,将所述平均值和/或所述差值作为所述长度关系信息,基于所述长度关系信息确认网络延时状态。
可以理解的,由于编码器每秒产生的数据量可能会有变化,存在一定波动,因此,通过增加统计次数,也即多次计算队列长度值来对数据进行平滑处理,从而得到更准确的网络情况判断结果。例如,统计的5秒内,平均的队列长度值较大,说明5秒内大部分的情况下是存在数据积压的情况;又如,统计的5秒内,队列长度的最大值和最小值的差值很大,则说明在5秒内网络发生了波动,网络不稳定,此时要考虑到最大值的网络情况,根据最大值来判定网络延时状态。
进一步地,基于上述步骤S206,所述基于所述长度关系信息确认网络延时状态,基于所述网络延时状态,调整所述初始码率,以得到目标码率,包括:
S301,若所述差值大于第一差值阈值,则所述网络延时状态为第一网络延时状态,基于第一缩小系数降低所述初始码率至第一优化码率,作为所述目标码率;
S302,若所述差值大于第二差值阈值且小于第一差值阈值,或所述平均值大于第一平均值阈值,则所述网络延时状态为第二网络延时状态,基于第二缩小系数降低所述初始码率至第二优化码率,作为所述目标码率;
S303,若所述差值小于第三差值阈值且所述平均值小于第二平均值阈值,则所述网络延时状态为第三网络延时状态,基于第一扩大系数提高所述初始码率值第三优化码率,作为所述目标码率。
具体的,通过差值和/或平均值对网络延时情况进行判定。示例性的,以第一差值阈值为2500kbps(千比特每秒),第二差值阈值为1250kbps,第三差值阈值为100kbps,第一平均值阈值为4000kbps,第二平均值阈值为500kbps为例进行说明:
如果差值>2500,则认为网络非常差,设置第一缩小系数为0.85,大幅度降低码率,目标码率=初始码率*0.85。码率越低,数据量越小,画质越不清晰,所以设置最小码率,降低码率时不能低于最小码率,避免画质太模糊导致影响观看。
如果1250<差值<2500或者平均值>4000,则认为网络比较差,设置第二缩小系数为0.9,小幅度降低码率,目标码率=初始码率*0.9。
如果差值<100并且平均值<500,则认为网络很好,设置第一扩大系数为1.08,小幅度升高码率,目标码率=初始码率*1.08。
需要说明的是,对第一差值阈值、第二差值阈值、第一平均值阈值和第二平均值阈值不做限定,可以根据不同的应用场景,网络情况去设定。
进一步地,在一实施例中,所述基于第一缩小系数降低所述初始码率至第一优化码率,作为所述目标码率,包括:
S304,基于第一缩小系数降低所述初始码率至第一优化码率,选取所述第一优化码率与预设最小码率中最大的码率,作为所述目标码率;
可以理解的,视频码率与视频的清晰度有关,如果码率过低则用户观看到的视频过于模糊,所以设置预设最小码率,降低码率时不能低于预设最小码率,避免画质太模糊导致影响观看。对第一优化码率的大小进行确认,如果第一优化码率小于预设最小码率则将预设最小码率作为目标码率。如果第一优化码率大于预设最小码率,说明只需要将码率调整到第一优化码率就能保障视频的流畅播放,则不再降低码率至预设最小码率,从而在保障视频质量的情况下同时保障视频播放的流畅度,延续使用上述例子,则目标码率=max(当前码率*0.85,最小码率)
所述基于第二缩小系数降低所述初始码率至第二优化码率,作为所述目标码率,包括:
S305,基于第二缩小系数降低所述初始码率至第二优化码率,选取所述第二优化码率与预设最小码率中最大的码率,作为所述目标码率;
同样的,在基于第二缩小系数降低初始码率时,将第二优化码率与预设最小码率进行比较,选取其中最大的作为目标码率。延续上述例子,则目标码率=max(当前码率*0.9,最小码率)。
所述基于第一扩大系数提高所述初始码率值第三优化码率,作为所述目标码率,包括:
S306,基于第一扩大系数提高所述初始码率值第三优化码率,选取所述第三优化码率与预设最大码率中最小的码率,作为所述目标码率。
可以理解的,在基于第一扩大系数提高初始码率时,考虑码率对带宽的占用情况,通常认为基于第一扩大系数扩大得到的第三优化码率画质已经完全满足使用需求,再升高码率没有必要,反而会浪费带宽,所以设置最大码率值,避免码率不断升高。延续上述例子,则目标码率=min(当前码率*1.08,最大码率)。
参照图6,图6为本发明实施例提供了一种视频处理方法的码率自适应流程示意图,以队列长度值的数量为五个,预设间隔时间为1秒为例,每秒获取一次视频数据缓存队列的队列长度值,当获取五次后,计算队列长度值的平均值和最大值与最小值之间的差值,并基于平均值和差值进行网络延时情况判定,同时调整初始码率,得到目标码率。
在本实施例中,通过获取视频数据缓存队列的缓存容量,当缓存容量满的时候进行自动丢包,从而防止因为缓存队列满而造成延时。并且通过每隔预设时间间隔,获取视频数据缓存队列中初始视频编码数据的时间标识,基于时间标识计算时间差,再基于时间差得到视频数据缓存队列的队列长度值,通过计算至少两个队列长度值的平均值和最大值与最小值之间的差值,得到长度关系信息,基于长度关系信息和第一差值阈值、第二差值阈值、第一平均值阈值和第二平均值阈值来确认网络延时状态,在不同的网络延时状态下基于对应的第一缩小系数、第二缩小系数和第一扩大系数对初始码率进行调整,得到目标码率,从而在各种网络延时状态下保证用户观看视频的流畅度。进一步地,设置预设最大码率和预设最小码率,在保障流畅性的前提下兼顾视频质量以及限制占用带宽大小,从而提高用户体验。
下面将结合附图7,对本发明实施例提供的视频处理装置进行详细介绍。需要说明的是,附图7中的视频处理装置,用于执行本说明书图1-图6所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本说明书图1-图6所示的实施例。
请参见图7,其示出了本说明书一个示例性实施例提供的视频处理装置的结构示意图。该视频处理装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括获取模块11、网络延时确认模块12、码率调整模块13、编码模块14。
获取模块11,用于基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,所述视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;
网络延时确认模块12,用于基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态;
码率调整模块13,用于基于所述网络延时状态调整所述初始码率,以得到目标码率;
编码模块14,用于采用所述目标码率对所述第二视频源数据进行编码,得到所述目标码率对应的目标视频编码数据,输出所述目标视频编码数据,所述第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
可选的,所述获取模块11具体用于每隔预设时间间隔,获取所述视频数据缓存队列中所述初始视频编码数据的时间标识;
基于所述时间标识,计算所述初始视频编码数据的时间差,并将所述时间差确认为所述视频数据缓存队列的队列长度值。
可选的,所述获取模块11还用于确认所述视频数据缓存队列的缓存容量是否已满;
若是,则将所述视频数据缓存队列中已输出的缓存视频编码数据删除。可选的,所述网络延时确认模块12具体用于获取所述队列长度值的平均值,以及至少两个所述队列长度值中的最大值和最小值之间的差值;
将所述平均值和/或所述差值作为所述长度关系信息,基于所述长度关系信息确认网络延时状态。
可选的,所述网络延时确认模块12具体用于若所述差值大于第一差值阈值,则所述网络延时状态为第一网络延时状态;
若所述差值大于第二差值阈值且小于第一差值阈值,或所述平均值大于第一平均值阈值,则所述网络延时状态为第二网络延时状态;
若所述差值小于第三差值阈值且所述平均值小于第二平均值阈值,则所述网络延时状态为第三网络延时状态。
可选的,所述码率调整模块13具体用于若所述网络延时状态为第一网络延时状态,则基于第一缩小系数降低所述初始码率至第一优化码率,作为所述目标码率;
若所述网络延时状态为第二网络延时状态,则基于第二缩小系数降低所述初始码率至第二优化码率,作为所述目标码率;
若所述网络延时状态为第三网络延时状态,则基于第一扩大系数提高所述初始码率值第三优化码率,作为所述目标码率。
可选的,所述码率调整模块13具体用于基于第一缩小系数降低所述初始码率至第一优化码率,选取所述第一优化码率与预设最小码率中最大的码率,作为所述目标码率;
基于第二缩小系数降低所述初始码率至第二优化码率,选取所述第二优化码率与预设最小码率中最大的码率,作为所述目标码率;
基于第一扩大系数提高所述初始码率值第三优化码率,选取所述第三优化码率与预设最大码率中最小的码率,作为所述目标码率。
需要说明的是,上述实施例提供的视频处理装置在执行视频处理方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频处理装置与视频处理方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述图1-图6所示实施例的所述视频处理方法,具体执行过程可以参见图1-图6所示实施例的具体说明,在此不进行赘述。
请参考图8,其示出了本说明书一个示例性实施例提供的视频处理设备的结构示意图。本说明书中的视频处理设备可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个视频处理设备内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户页面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(Non-Transitory Computer-Readable Storage Medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作***可以是安卓(Android)***,包括基于Android***深度开发的***、苹果公司开发的IOS***,包括基于IOS***深度开发的***或其它***。
存储器120可分为操作***空间和用户空间,操作***即运行于操作***空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作***针对不同第三方应用程序为其分配相应的***资源。然而,同一第三方应用程序中不同应用场景对***资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作***与第三方应用程序之间相互独立,操作***往往不能及时感知第三方应用程序当前的应用场景,导致操作***无法根据第三方应用程序的具体应用场景进行针对性的***资源适配。
为了使操作***能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作***之间的数据通信,使得操作***能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的***资源适配。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏。
所述触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本发明实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的视频处理设备的结构并不构成对视频处理设备的限定,视频处理设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,视频处理设备中还包括射频电路、输入单元、传感器、音频电路、WiFi模块、电源、蓝牙模块等部件,在此不再赘述。
在图8所示的视频处理设备中,处理器110可以用于调用存储器120中存储的视频处理应用程序,并具体执行以下操作:
基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,所述视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;
基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态;
基于所述网络延时状态调整所述初始码率,以得到目标码率;
采用所述目标码率对所述第二视频源数据进行编码,得到所述目标码率对应的目标视频编码数据,并输出所述目标视频编码数据,所述第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
在一个实施例中,所述处理器110在执行基于所述基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值时,具体执行以下操作:
每隔预设时间间隔,获取所述视频数据缓存队列中所述初始视频编码数据的时间标识;
基于所述时间标识,计算所述初始视频编码数据的时间差,并将所述时间差确认为所述视频数据缓存队列的队列长度值。
在一个实施例中,所述处理器110在执行所述在预设时间间隔内获取视频数据缓存队列的至少两个队列长度值之前,还执行以下操作:
确认所述视频数据缓存队列的缓存容量是否已满;
若是,则将所述视频数据缓存队列中已输出的缓存视频编码数据删除。
在一个实施例中,所述处理器110在执行所述基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态时,具体执行以下操作:
获取所述队列长度值的平均值,以及至少两个所述队列长度值中的最大值和最小值之间的差值;
将所述平均值和/或所述差值作为所述长度关系信息,基于所述长度关系信息确认网络延时状态。
在一个实施例中,所述处理器110在执行所述基于所述长度关系信息确认网络延时状态时,具体执行以下操作:
若所述差值大于第一差值阈值,则所述网络延时状态为第一网络延时状态;
若所述差值大于第二差值阈值且小于第一差值阈值,或所述平均值大于第一平均值阈值,则所述网络延时状态为第二网络延时状态;
若所述差值小于第三差值阈值且所述平均值小于第二平均值阈值,则所述网络延时状态为第三网络延时状态。
在一个实施例中,所述处理器110在执行所述基于所述网络延时状态,调整所述初始码率,以得到目标码率时,具体执行以下操作:
若所述网络延时状态为第一网络延时状态,则基于第一缩小系数降低所述初始码率至第一优化码率,作为所述目标码率;
若所述网络延时状态为第二网络延时状态,则基于第二缩小系数降低所述初始码率至第二优化码率,作为所述目标码率;
若所述网络延时状态为第三网络延时状态,则基于第一扩大系数提高所述初始码率值第三优化码率,作为所述目标码率。
在一个实施例中,所述处理器110在执行所述基于第一缩小系数降低所述初始码率至第一优化码率,作为所述目标码率时,具体执行以下操作:
基于第一缩小系数降低所述初始码率至第一优化码率,选取所述第一优化码率与预设最小码率中最大的码率,作为所述目标码率;
在一个实施例中,所述处理器110在执行所述基于第二缩小系数降低所述初始码率至第二优化码率,作为所述目标码率时,具体执行以下操作:
基于第二缩小系数降低所述初始码率至第二优化码率,选取所述第二优化码率与预设最小码率中最大的码率,作为所述目标码率;
在一个实施例中,所述处理器110在执行所述基于第一扩大系数提高所述初始码率值第三优化码率,作为所述目标码率时,具体执行以下操作:
基于第一扩大系数提高所述初始码率值第三优化码率,选取所述第三优化码率与预设最大码率中最小的码率,作为所述目标码率。
在本发明实施例中,通过基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态,再根据网络延时状态调整初始码率,以得到目标码率,采用目标码率对第二视频源数据进行编码,得到目标码率对应的目标视频编码数据,并输出目标视频编码数据。通过对视频数据缓存队列长度的检测,来确认网络延时状态,并根据网络延时状态实时调整视频数据量,进而保障视频播放的稳定性,提高用户观看体验。通过获取视频数据缓存队列的缓存容量,当缓存容量满的时候进行自动丢包,从而防止因为缓存队列满而造成延时。并且通过每隔预设时间间隔,获取视频数据缓存队列中初始视频编码数据的时间标识,基于时间标识计算时间差,再基于时间差得到视频数据缓存队列的队列长度值,通过计算至少两个队列长度值的平均值和最大值与最小值之间的差值,得到长度关系信息,基于长度关系信息和第一差值阈值、第二差值阈值、第一平均值阈值和第二平均值阈值来确认网络延时状态,在不同的网络延时状态下基于对应的第一缩小系数、第二缩小系数和第一扩大系数对初始码率进行调整,得到目标码率,从而在各种网络延时状态下保证用户观看视频的流畅度。进一步地,设置预设最大码率和预设最小码率,在保障流畅性的前提下兼顾视频质量以及限制占用带宽大小,从而提高用户体验。
另外,本发明实施例提供了一种计算机程序产品,所述计算机程序产品中包括计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述处理器至少可以实现如前述图1至图6所示实施例中提供的视频处理方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本说明书较佳实施例而已,当然不能以此来限定本说明书之权利范围,因此依本说明书权利要求所作的等同变化,仍属本说明书所涵盖的范围。
Claims (10)
1.一种视频处理方法,其特征在于,所述方法包括:
基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,所述视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;
基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态;
基于所述网络延时状态调整所述初始码率,以得到目标码率;
采用所述目标码率对所述第二视频源数据进行编码,得到所述目标码率对应的目标视频编码数据,并输出所述目标视频编码数据,所述第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
2.如权利要求1所述的方法,其特征在于,所述基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,包括:
每隔预设时间间隔,获取所述视频数据缓存队列中所述初始视频编码数据的时间标识;
基于所述时间标识,计算所述初始视频编码数据的时间差,并将所述时间差确认为所述视频数据缓存队列的队列长度值。
3.如权利要求1所述的方法,其特征在于,所述在预设时间间隔内获取视频数据缓存队列的至少两个队列长度值之前,还包括:
确认所述视频数据缓存队列的缓存容量是否已满;
若是,则将所述视频数据缓存队列中已输出的缓存视频编码数据删除。
4.如权利要求1所述的方法,其特征在于,所述基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态,包括:
获取所述队列长度值的平均值,以及至少两个所述队列长度值中的最大值和最小值之间的差值;
将所述平均值和/或所述差值作为所述长度关系信息,基于所述长度关系信息确认网络延时状态。
5.如权利要求4所述的方法,其特征在于,所述基于所述长度关系信息确认网络延时状态,包括:
若所述差值大于第一差值阈值,则所述网络延时状态为第一网络延时状态;
若所述差值大于第二差值阈值且小于第一差值阈值,或所述平均值大于第一平均值阈值,则所述网络延时状态为第二网络延时状态;
若所述差值小于第三差值阈值且所述平均值小于第二平均值阈值,则所述网络延时状态为第三网络延时状态。
6.如权利要求5所述的方法,其特征在于,所述基于所述网络延时状态,调整所述初始码率,以得到目标码率,包括:
若所述网络延时状态为第一网络延时状态,则基于第一缩小系数降低所述初始码率至第一优化码率,作为所述目标码率;
若所述网络延时状态为第二网络延时状态,则基于第二缩小系数降低所述初始码率至第二优化码率,作为所述目标码率;
若所述网络延时状态为第三网络延时状态,则基于第一扩大系数提高所述初始码率值第三优化码率,作为所述目标码率。
7.如权利要求6所述的方法,其特征在于,所述基于第一缩小系数降低所述初始码率至第一优化码率,作为所述目标码率,包括:
基于第一缩小系数降低所述初始码率至第一优化码率,选取所述第一优化码率与预设最小码率中最大的码率,作为所述目标码率;
所述基于第二缩小系数降低所述初始码率至第二优化码率,作为所述目标码率,包括:
基于第二缩小系数降低所述初始码率至第二优化码率,选取所述第二优化码率与预设最小码率中最大的码率,作为所述目标码率;
所述基于第一扩大系数提高所述初始码率值第三优化码率,作为所述目标码率,包括:
基于第一扩大系数提高所述初始码率值第三优化码率,选取所述第三优化码率与预设最大码率中最小的码率,作为所述目标码率。
8.一种视频处理装置,其特征在于,所述装置包括:
获取模块,用于基于预设时间间隔,获取视频数据缓存队列的至少两个队列长度值,所述视频数据缓存队列中存储有基于初始码率对第一视频源数据编码得到的初始视频编码数据;
网络延时确认模块,用于基于至少两个所述队列长度值之间的长度关系信息,确认网络延时状态;
码率调整模块,用于基于所述网络延时状态调整所述初始码率,以得到目标码率;
编码模块,用于采用所述目标码率对所述第二视频源数据进行编码,得到所述目标码率对应的目标视频编码数据,输出所述目标视频编码数据,所述第二视频源数据为在获取所述第一视频源数据后所获取的视频源数据。
9.一种电子设备,其特征在于,包括:处理器和存储器;其中存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211430328.8A CN118055260A (zh) | 2022-11-15 | 2022-11-15 | 视频处理方法、装置、设备与计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211430328.8A CN118055260A (zh) | 2022-11-15 | 2022-11-15 | 视频处理方法、装置、设备与计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118055260A true CN118055260A (zh) | 2024-05-17 |
Family
ID=91045677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211430328.8A Pending CN118055260A (zh) | 2022-11-15 | 2022-11-15 | 视频处理方法、装置、设备与计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118055260A (zh) |
-
2022
- 2022-11-15 CN CN202211430328.8A patent/CN118055260A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106791956B (zh) | 网络直播卡顿的处理方法及装置 | |
CN110198495B (zh) | 一种视频下载和播放的方法、装置、设备和存储介质 | |
CN110636346B (zh) | 一种码率自适应切换方法、装置、电子设备及存储介质 | |
CN111225209B (zh) | 视频数据推流方法、装置、终端及存储介质 | |
EP2300928B1 (en) | Client side stream switching | |
US20210168418A1 (en) | Method and device for controlling video transcoding code rate | |
US20150134846A1 (en) | Method and apparatus for media segment request retry control | |
JP5140952B2 (ja) | コンテンツ配信システム、コンテンツ配信サーバ、コンテンツ再生端末、プログラム、コンテンツ配信方法 | |
CN112929704B (zh) | 数据传输方法、装置、电子设备以及存储介质 | |
CN111970565A (zh) | 视频数据处理方法、装置、电子设备及存储介质 | |
WO2023174254A1 (zh) | 视频发布方法、装置、设备及存储介质 | |
CN112929712A (zh) | 视频码率调整方法和装置 | |
CN111617466B (zh) | 编码格式的确定方法、装置及云游戏的实现方法 | |
CN114245196B (zh) | 一种录屏推流方法、装置、电子设备及存储介质 | |
CN112423074B (zh) | 音视频同步处理方法、装置、电子设备及存储介质 | |
CN114040245A (zh) | 视频播放方法、装置、计算机存储介质和电子设备 | |
CN113645477A (zh) | 直播数据处理方法、装置、直播客户端设备及存储介质 | |
CN111107387B (zh) | 视频转码方法、装置及计算机存储介质 | |
US8612552B2 (en) | Method for buffering streaming data and a terminal device | |
CN118055277A (zh) | 视频处理方法、装置、设备与计算机存储介质 | |
CN118055260A (zh) | 视频处理方法、装置、设备与计算机存储介质 | |
CN113259730B (zh) | 用于直播的码率调整方法及装置 | |
CN112153322B (zh) | 数据分发方法、装置、设备及存储介质 | |
CN114416013A (zh) | 数据发送方法、装置、电子设备及计算机可读存储介质 | |
CN112737971B (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 |