具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种视频编码参数的配置方法的流程图,本实施例可适用于对待直播视频配置编码参数的情况,该方法可由一种视频编码参数的配置装置来执行。该方法具体包括如下步骤:
步骤110、依据参数配置规则和视频质量参数,确定待直播视频的码率和量化参数。
在本发明具体实施例中,待直播视频是指可以同一时间透过网络系统在不同的交流平台观看的视频,可以为游戏直播、赛事直播以及销售直播等多种直播形式。为了利于视频的传输和保存,提高视频直播质量和传输效率等,在待直播视频直播之前,需要对待直播视频的编码参数进行配置,以使待直播视频在直播进程中依据编码参数进行编码和推流,确保直播视频顺利传输至观看直播的各个客户端。
本实施例中,依据不同的编码格式,描述视频流的参数通常可以包括分辨率、帧率、GOP长度、码率和量化参数(Quantization Parameter,QP)等。各个编码参数之间存在复杂的相关性,且随着视频的不同各个参数之间的相关性也随之变化。鉴于直播应用中,视频分辨率的种类较少,且直播系统中用于推流的客户端中,影响视频质量的参数主要为码率和量化参数。因此本实施例以码率和量化参数为参数配置对象,制定直播视频的参数配置规则,以简化直播视频的参数配置方式,并提高参数配置的通用性。
具体的,码率是指视频文件在单位时间内使用的数据流量,也叫码率或码流率。通常情况下,码率与视频质量成正比,待直播视频的码率越大,说明单位时间内取样率越大,压缩比例就越小,数据流精度就越高,处理出来的文件就越接近原始文件,视频图像质量越好,画质越清晰,相应的要求播放设备的解码能力也越低。但由于码率与视频压缩文件体积成正比,码率越大,视频文件体积也越大,对带宽要求也较高,因此通常的编码格式都追求使用最低的码率达到最少的失真。量化参数反映了空间细节压缩情况,量化参数与视频质量成反比,且量化参数与码率成反比。即量化参数越小,量化越精细,视频图像质量越高,大部分的细节都会被保留,产生的码率也越大;量化参数越大,细节越易丢失,码率降低,进而图像失真越多和质量下降。在H.264标准中,量化参数的取值范围为0至51。一般在初始化编码器时需要设置最小量化参数和最大量化参数,进而编码器在进行工作时,按照预定码率和量化参数范围进行编码。
本实施例引入视频质量参数,用于量化视频直播播放质量的指标。并依据码率、量化参数范围以及视频播放质量之间的经验设置关系,从简化计算复杂度的角度出发,预先设定了参数配置规则。其中,参数配置规则可以为编码参数的计算公式。从而在进行待直播视频的编码参数配置时,依据参数配置规则,直播应用的运维人员只需根据所要得到的视频播放质量设置视频质量参数即可,进而依据参数配置规则和视频质量参数即可自动得出待直播视频的码率和量化参数范围。
具体的,依据待直播视频的直播房间、主播身份和直播内容中的至少一项,设置待直播视频的视频质量参数。也可以统一设置直播平台的视频质量参数,并定期进行统一的更新和系统升级。依据分辨率与基准码率的关联关系,以及预设的分辨率,确定待直播视频的基准码率。依据视频质量参数、待直播视频的基准码率和编码规则确定待直播视频的码率、最大量化参数和最小量化参数。
步骤120、依据码率和量化参数对待直播视频进行编码和推流。
在本发明具体实施例中,进行直播视频编码时,编码器内部可以自动检测场景的变化情况,例如可以针对具体视频帧,依据视频编码中的连续P帧进行预测,判断当前场景的变化强度。编码视频质量的保证以量化参数范围为主,以码率为辅,具体上:首先根据场景的变化强度和预设的码率预估其所需要的量化参数;接着判断所需要的量化参数是否在初始化的量化参数范围内,若在初始化的量化参数范围内则可按该量化参数进行编码,若不在初始化的量化参数范围内则就近使用最小/最大量化参数进行编码。通过以量化参数范围为主,以码率为辅的方式进行编码,优先保证了直播视频的质量统一性,适当牺牲视频编码码率,从而达到最为满意的视频编码质量和输出码率平衡。
本实施例的技术方案,通过引入视频质量参数这一指标,统筹量化直播视频的播放质量,在进行编码参数配置时,仅需预先设置视频质量参数进行视频播放质量的设置,即可根据参数编码规则,以视频质量参数为依据确定待直播视频的初始化码率和初始化量化参数范围,从而依据确定的码率和量化参数范围对待直播视频进行编码和推流。本发明实施例通过视频质量参数的引入和设置,简化了编码参数的配置流程,提高编码参数配置的通用性以及编码参数配置效率和准确度。
实施例二
本实施例在上述实施例一的基础上,提供了视频编码参数的配置方法的一个优选实施方式,能够依据公式和视频质量参数计算初始化码率和初始化量化参数范围。图2为本发明实施例二提供的一种视频编码参数的配置方法的流程图,如图2所示,该方法包括以下具体步骤:
步骤210、依据待直播视频的直播房间、主播身份和直播内容中的至少一项,设置待直播视频的视频质量参数。
在本发明具体实施例中,依据码率、量化参数以及视频播放质量之间的经验设置关系,从简化计算复杂度的角度出发,可以控制视频质量参数的可取值范围为80至170,并以5为步长进行视频质量参数的取值调整。其中视频质量参数的数值越高,则视频质量越好,可以默认取值为100。
具体的,直播应用的运维人员可以对直播平台中的视频编码情况进行统筹管理。本实施例可以统一配置直播平台的视频质量参数,也可以依据直播房间、主播身份和直播内容中的至少一项,针对具体的待直播视频或某类待直播视频进行视频质量参数的设置。并可以对具体的待直播视频或某类待直播视频的视频质量参数进行更新或升级。本实施例不对视频质量参数的设置方式进行限定,任何可以设置符合期望所达到的视频播放质量的视频质量参数设置方式都可以应用于本实施例中。
示例性的,假设直播房间2001为销售直播,则直播内容较为稳定,且场景变化强度较低,因此可以设置一个较低的视频质量参数,例如100。假设直播房间2002为游戏直播,游戏画面中场景变化强度较大,需要清晰度较高的播放质量,因此可以设置一个较高的视频质量参数,例如150。相应的,本实施例还可以定期对某类直播的视频质量参数进行升级,例如统一将游戏类直播的视频质量参数提升10。
步骤220、依据分辨率与基准码率的关联关系,以及预设的分辨率,确定待直播视频的基准码率。
在本发明具体实施例中,分辨率是指直播视频推流客户端设备视频窗口的分辨率,描述了视频画面的显示精度。本实施例可以以经验取值为依据,预先为各个分辨率的视频设置对应的基准码率,从而依据分辨率与基准码率的关联关系以及预设的待直播视频的分辨率,确定待直播视频的基准码率,以基准码率和视频质量参数为依据来计算编码码率。
示例性的,一般来说,分辨率的表示包括宽度和长度两个参数,视频窗口可以分为横屏和竖屏,且视频窗口的横屏和竖屏的纵横比是相对固定的,因此本实施例可以从宽度和长度中选择一个参数为代表即可,例如针对横屏视频窗口可以选择以宽度为代表,针对竖屏视频窗口可以选择以高度为代表。以横屏视频窗口为例,明确各视频宽度范围的基准码率如表1所示。由表1可知,本实施例可以预先以经验取值为依据,根据常用横屏分辨率的常用编码码率范围,确定基准码率,并总结其宽度范围,进而形成分辨率与基准码率的关联关系。假设预先设置待直播视频的分辨率为640×480,则由表1中常用分辨率或宽度与基准码率的关联关系,可以确定640×480的分辨率或宽度在640-1279区间内的待直播视频的基准码率为500。
表1横屏视频窗口的基准码率对应表
宽度 |
基准码率 |
码率范围(Kbps) |
常用分辨率 |
0-199 |
120 |
Min:96;Max:204 |
176×144,192×144 |
200-319 |
180 |
Min:144;Max:289 |
256×192,280×210 |
320-639 |
300 |
Min:240;Max:510 |
320×240,400×300,480×360 |
640-1279 |
500 |
Min:400;Max:850 |
640×480,800×600,960×720 |
1280(含)以上 |
800 |
Min:640;Max:1360 |
1280×720 |
步骤230、依据视频质量参数和待直播视频的基准码率,通过如下公式确定待直播视频的码率:
VideoBitRate=VideoQuality×BaseBitRate/100;
其中,VideoQuality表示视频质量参数;BaseBitRate表示基准码率;VideoBitRate表示用于编码的码率。
在本发明具体实施例中,通过引入视频质量参数这一指标,构建码率的计算公式,从而无需依据经验进行码率的配置,而直接根据所期望达到的视频播放质量设置视频质量参数,依据公式计算得到对应的码率即可。
示例性的,在上述示例中,假设游戏类直播的视频质量参数为150,基准码率为500,则通过公式可以计算得到用于对直播视频进行编码的初始化码率为VideoBitRate=150×500/100=750。
步骤240、依据视频质量参数,通过如下公式确定待直播视频的最小量化参数和最大量化参数:
MinQP=27-(VideoQuality-75)/5;
MaxQP=35-(VideoQuality-75)/5;
其中,VideoQuality表示视频质量参数;MinQP表示最小量化参数;MaxQP表示最大量化参数。
在本发明具体实施例中,通过引入视频质量参数这一指标,构建量化参数的计算公式,从而无需依据经验进行量化参数的配置,而直接根据所期望达到的视频播放质量设置视频质量参数,依据公式计算得到对应的量化参数即可。
示例性的,在上述示例中,假设游戏类直播的视频质量参数为150,则通过公式可以计算得到最小量化参数为MinQP=27-(150-75)/5=12,通过公式可以计算得到最大量化参数为MaxQP=35-(150-75)/5=20,即用于对直播视频进行编码的初始化量化参数范围为12至20。
步骤250、依据码率和量化参数对待直播视频进行编码和推流。
在本发明具体实施例中,进行直播视频编码时,编码器内部可以自动检测场景的变化情况,例如可以针对具体视频帧,依据视频编码中的连续P帧进行预测,判断当前场景的变化强度。编码视频质量的保证以量化参数范围为主,以码率为辅,具体上:首先根据场景的变化强度和预设的码率预估其所需要的量化参数;接着判断所需要的量化参数是否在初始化的量化参数范围内,若在初始化的量化参数范围内则可按该量化参数进行编码,若不在初始化的量化参数范围内则就近使用最小/最大量化参数进行编码。通过以量化参数范围为主,以码率为辅的方式进行编码,优先保证了直播视频的质量统一性,适当牺牲视频编码码率,从而达到最为满意的视频编码质量和输出码率平衡。
本实施例的技术方案,通过引入视频质量参数这一指标,统筹量化直播视频的播放质量,在进行编码参数配置时,仅需预先设置视频质量参数进行视频播放质量的设置,通过预设的分辨率确定待直播视频的基准码率,即可根据预先构建的参数计算公式,以视频质量参数和基准码率为依据确定待直播视频的初始化码率和初始化量化参数范围,从而依据确定的码率和量化参数范围对待直播视频进行编码和推流。本发明实施例通过视频质量参数的引入和设置,简化了编码参数的配置流程,提高编码参数配置的通用性以及编码参数配置效率和准确度。
实施例三
图3为本发明实施例三提供的一种视频编码参数的配置装置的结构示意图,本实施例可适用于对直播视频配置编码参数的情况,该装置可实现本发明任意实施例所述的视频编码参数的配置方法。该装置具体包括:
参数配置模块310,用于依据参数配置规则和视频质量参数,确定待直播视频的码率和量化参数;
直播编码模块320,用于依据所述码率和所述量化参数对所述待直播视频进行编码和推流。
可选的,所述参数配置模块310具体用于:
依据所述视频质量参数和待直播视频的基准码率,通过如下公式确定所述待直播视频的码率:
VideoBitRate=VideoQuality×BaseBitRate/100;
其中,VideoQuality表示视频质量参数;BaseBitRate表示基准码率;VideoBitRate表示用于编码的码率。
进一步的,所述装置还包括基准码率确定模块330;所述基准码率确定模块330具体用于:
在依据参数配置规则和视频质量参数,确定待直播视频的码率之前,依据分辨率与基准码率的关联关系,以及预设的分辨率,确定所述待直播视频的基准码率。
可选的,所述参数配置模块310具体用于:
依据所述视频质量参数,通过如下公式确定所述待直播视频的最小量化参数和最大量化参数:
MinQP=27-(VideoQuality-75)/5;
MaxQP=35-(VideoQuality-75)/5;
其中,VideoQuality表示视频质量参数;MinQP表示最小量化参数;MaxQP表示最大量化参数。
进一步的,所述装置还包括视频质量参数设置模块340;所述视频质量参数设置模块340具体用于:
依据所述待直播视频的直播房间、主播身份和直播内容中的至少一项,设置所述待直播视频的视频质量参数。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现了视频质量参数的设置、基准码率的获取、码率的计算、量化参数范围的计算以及直播视频的编码等功能。本发明实施例通过视频质量参数的引入和设置,简化了编码参数的配置流程,提高编码参数配置的通用性以及编码参数配置效率和准确度。
实施例四
图4为本发明实施例四提供的一种设备的结构示意图。如图4所示,该设备具体包括:一个或多个处理器410,图4中以一个处理器410为例;存储器420,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器410执行,使得一个或多个处理器410实现本发明任意实施例所述的视频编码参数的配置方法。处理器410与存储器420可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420,作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的视频编码参数的配置方法对应的程序指令(例如,视频质量参数的设置与基准码率的确定以及码率和量化参数范围的计算)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的视频编码参数的配置方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种视频编码参数的配置方法,该方法包括:
依据参数配置规则和视频质量参数,确定待直播视频的码率和量化参数;
依据所述码率和所述量化参数对所述待直播视频进行编码和推流。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的视频编码参数的配置方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。