一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种音视频硬件加速转码检测方法及系统与流程

2023-01-02 18:57:58 来源:中国专利 TAG:


1.本发明涉及文件转码技术领域,尤其涉及一种音视频硬件加速转码检测方法及系统。


背景技术:

2.视频转码是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。
3.目前音视频转码一般都需要使用硬件加速,如果使用cpu转码,不仅会耗费时间,而且还会导致设备cpu使用率升高而卡死,但是并不是所有的设备都能支持硬件加速转码,所以在转码前判断设备是否支持硬件加速显得尤为重要。
4.目前主要是通过查看配置文件、调用系统函数、查看注册表等方式,确定设备是否有显卡以及显卡的类型,从而确定使用何种硬件进行音视频硬件加速转码,但是市面上不是所有的设备都能系统上检测到显卡的类型,因为环境配置、非主流显卡等的问题,存在检测到的显卡类型与实际上不符合的情况,也可能出现硬件加速方法无法加速的情况。


技术实现要素:

5.本发明提供了一种音视频硬件加速转码检测方法,可以在设备复杂的系统环境下判断出该设备是否支持硬件加速转码,减少转码失败风险。
6.为了解决上述技术问题,本发明实施例提供了一种音视频硬件加速转码检测方法,包括:获取测试视频;依次调用第一数据库中的各个解码方法对测试视频进行解码,判断是否存在能对测试视频进行解码的解码方法,若存在,则获取解码成功的所有解码方法,并根据各解码成功的解码方法所对应的gpu-video decode使用率,筛选出一解码方法作为设备的硬件加速解码方法,确定第一判断结果为设备能进行硬件加速解码,若不存在,则确定第一判断结果为设备无法进行硬件加速解码,其中,第一数据库中预设若干个解码方法;依次调用第二数据库中的各个编码方法对测试视频进行编码,判断是否存在能对测试视频进行编码的编码方法,若存在,则获取编码成功的所有编码方法,并根据各编码成功的编码方法所对应的gpu-video decode使用率,筛选出一编码方法作为设备的硬件加速编码方法,确定第二判断结果为设备能进行硬件加速编码,若不存在,则确定第二判断结果为设备无法进行硬件加速编码,其中,第二数据库中预设若干个编码方法;根据第一判断结果和第二判断结果得到设备硬件加速转码方法的检测结果。
7.实施本发明实施例,使用准备好的视频作为检测该设备硬件加速能力的测试素材,通过依次调用数据库中的解码方法对视频进行解码进而判断数据库中是否存在解码方法对视频进行解码,如果存在解码方法能对视频进行解码,则检测该解码方法对应的gpu-video decode使用率是否增加,如果gpu-video decode使用率没有增加,则得到判断结果
为该设备能进行硬件加速解码,若不存在解码方法,则得到判断结果为该设备不能进行硬件加速解码,通过使用另一数据库中的编码方法对视频进行编码,判断数据库中是否存在编码方法对视频进行编码,如果存在编码方法,能对视频进行编码,则检测该编码方法对应的gpu-video decode使用率是否增加,如果gpu-video decode使用率没有增加,则得到判断结果为该设备能进行硬件加速编码,若不存在编码方法,则得到判断结果为该设备不能进行硬件加速编码,根据解码判断结果和编码判断结果得到设备硬件转码结果,通过该方法可以在不同设备复杂的系统环境以及硬件信息不准确的情况,判断出该设备是否支持硬件加速转码,从而减少转码失败的风险。
8.作为优选方案,依次调用第一数据库中的各个解码方法对测试视频进行解码,判断是否存在能对测试视频进行解码的解码方法,若存在,则获取编码成功的所有编码方法,并根据各编码成功的编码方法所对应的gpu-video decode使用率,筛选出一编码方法作为设备的硬件加速编码方法,确定第二判断结果为设备能进行硬件加速编码,具体为:依次调用第一数据库中的解码方法对测试视频进行解码;判断当前解码方法能否对测试视频进行解码,若当前解码方法能对测试视频进行解码,则检测当前解码方法所对应的gpu-video decode使用率是否增加,若增加,则调用下一个解码方法进行解码判断下一个解码方法能否对测试视频进行解码,若没有增加,则记录当前解码方法为设备硬件加速解码方法,得到第一判断结果为设备能进行硬件加速解码。
9.作为优选方案,依次调用第二数据库中的各个编码方法对测试视频进行编码,判断是否存在能对测试视频进行编码的编码方法,若存在,则获取编码成功的所有编码方法,并根据各编码成功的编码方法所对应的gpu-video decode使用率,筛选出一编码方法作为设备的硬件加速编码方法,确定第二判断结果为设备能进行硬件加速编码,具体为:依次调用第一数据中的编码方法对测试视频进行编码;判断当前编码方法能否对测试视频进行编码,若当前编码方法能对测试视频进行编码,则检测当前编码方法所对应的gpu-video decode使用率是否增加,若增加,则调用下一个编码方法进行编码判断下一个编码方法能否对测试视频进行编码,若没有增加,则记录当前编码方法为设备硬件加速编码方法,得到第一判断结果为设备能进行硬件加速编码。
10.作为优选方案,根据第一判断结果和第二判断结果得到设备硬件加速转码方法的检测结果,具体为:若第一判断结果为设备能进行硬件加速解码,第二判断结果为设备能进行硬件加速编码,则得到设备可以进行硬件加速转码;若第一判断结果为设备无法进行硬件加速解码,第二判断结果为设备能进行硬件加速编码,则得到设备不使用硬件加速解码,使用硬件加速编码;若第一判断结果为设备能进行硬件加速解码,第二判断结果为设备能进行硬件加速编码,则得到设备使用硬件加速解码,不使用硬件加速编码;若第一判断结果为设备无法进行硬件加速解码,第二判断结果为设备无法进行硬件加速编码,则得到设备无法进行硬件加速转码。
11.作为优选方案,解码方法为第三方转码程序所支持的所有硬件解码方法;
编码方法为第三方转码程序所支持的所有硬件编码方法。
12.为了解决相同的技术问题,本发明还提供了一种音视频硬件加速转码检测系统,包括:获取模块,用于获取测试视频;第一判断模块,用于依次调用第一数据库中的各个解码方法对测试视频进行解码,判断是否存在能对测试视频进行解码的解码方法,若存在,则获取解码成功的所有解码方法,并根据各解码成功的解码方法所对应的gpu-video decode使用率,筛选出一解码方法作为设备的硬件加速解码方法,确定第一判断结果为设备能进行硬件加速解码,若不存在,则确定第一判断结果为设备无法进行硬件加速解码,其中,第一数据库中预设若干个解码方法;第二判断模块,用于依次调用第二数据库中的各个编码方法对测试视频进行编码,判断是否存在能对测试视频进行编码的编码方法,若存在,则获取编码成功的所有编码方法,并根据各编码成功的编码方法所对应的gpu-video decode使用率,筛选出一编码方法作为设备的硬件加速编码方法,确定第二判断结果为设备能进行硬件加速编码,若不存在,则确定第二判断结果为设备无法进行硬件加速编码,其中,第二数据库中预设若干个编码方法;第三判断模块,用于根据第一判断结果和第二判断结果得到设备硬件加速转码方法的检测结果。
13.作为优选方案,第一判断模块包括调用单元和判断单元,调用单元用于依次调用第一数据中的解码方法对测试视频进行解码;判断单元用于判断当前解码方法能否对测试视频进行解码,若当前解码方法能对测试视频进行解码,则检测当前解码方法所对应的gpu-video decode使用率是否增加,若增加,则调用下一个解码方法进行解码判断下一个解码方法能否对测试视频进行解码,若没有增加,则记录当前解码方法为设备硬件加速解码方法,得到第一判断结果为设备能进行硬件加速解码。
14.作为优选方案,为了解决相同的技术问题,本发明实施例还提供了一种终端设备,包括:处理器和存储器,存储器中存储有计算机程序,且计算机程序被配置为由所述处理器执行,处理器执行计算机程序时实现如本发明实施例所述的音视频硬件加速转码检测方法。
15.作为优选方案,为了解决相同的技术问题,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行实现如本发明实施例所述的音视频硬件加速转码检测方法。
16.本发明提供的一种音视频硬件加速转码检测方法,使用准备好的视频作为检测该设备硬件加速能力的测试素材,通过依次调用数据库中的解码方法对视频进行解码进而判断数据库中是否存在解码方法对视频进行解码,如果存在解码方法能对视频进行解码,则检测该解码方法对应的gpu-video decode使用率是否增加,如果gpu-video decode使用率没有增加,则得到判断结果为该设备能进行硬件加速解码,若不存在解码方法,则得到判断结果为该设备不能进行硬件加速解码,通过使用另一数据库中的编码方法对视频进行编码,判断数据库中是否存在编码方法对视频进行编码,如果存在编码方法,能对视频进行编
码,则检测该编码方法对应的gpu-video decode使用率是否增加,如果gpu-video decode使用率没有增加,则得到判断结果为该设备能进行硬件加速编码,若不存在编码方法,则得到判断结果为该设备不能进行硬件加速编码,根据解码判断结果和编码判断结果得到设备硬件转码结果,通过该方法可以在不同设备复杂的系统环境以及硬件信息不准确的情况,判断出该设备是否支持硬件加速转码,从而减少转码失败的风险。
附图说明
17.图1:为本发明一实施例提供的音视频硬件加速转码检测方法的流程示意图;图2:为本发明一实施例提供的音视频硬件加速转码检测方法的另一流程示意图;图3:为本发明一实施例提供的音视频硬件加速转码检测系统的结构示意图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
20.应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
21.术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
22.术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
23.实施例一请参照图1,为本发明实施例提供的一种音视频硬件加速转码检测方法,该方法包括步骤:s1、获取测试视频。
24.s2、依次调用第一数据库中的各个解码方法对测试视频进行解码,判断是否存在能对测试视频进行解码的解码方法,若存在,则获取解码成功的所有解码方法,并根据各解码成功的解码方法所对应的gpu-video decode使用率,筛选出一解码方法作为设备的硬件加速解码方法,确定第一判断结果为设备能进行硬件加速解码,若不存在,则确定第一判断结果为设备无法进行硬件加速解码,其中,第一数据库中预设若干个解码方法。
25.进一步地,步骤s2具体包括:s201、依次调用第一数据库中的解码方法对测试视频进行解码;s202、判断当前解码方法能否对测试视频进行解码,若当前解码方法能对测试视频进行解码,则检测当前解码方法所对应的gpu-video decode使用率是否增加,若增加,则调用下一个解码方法进行解码判断下一个解码方法能否对测试视频进行解码,若没有增
加,则记录当前解码方法为设备硬件加速解码方法,得到第一判断结果为设备能进行硬件加速解码。
26.s3、依次调用第二数据库中的各个编码方法对测试视频进行编码,判断是否存在能对测试视频进行编码的编码方法,若存在,则获取编码成功的所有编码方法,并根据各编码成功的编码方法所对应的gpu-video decode使用率,筛选出一编码方法作为设备的硬件加速编码方法,确定第二判断结果为设备能进行硬件加速编码,若不存在,则确定第二判断结果为设备无法进行硬件加速编码,其中,第二数据库中预设若干个编码方法。
27.进一步地,步骤s3具体包括:s301、依次调用所述第一数据中的编码方法对测试视频进行编码;s302、判断当前编码方法能否对测试视频进行编码,若当前编码方法能对测试视频进行编码,则检测当前编码方法所对应的gpu-video decode使用率是否增加,若增加,则调用下一个编码方法进行编码判断下一个编码方法能否对测试视频进行编码,若没有增加,则记录当前编码方法为设备硬件加速编码方法,得到第一判断结果为设备能进行硬件加速编码。
28.s4、根据第一判断结果和第二判断结果得到设备硬件加速转码方法的检测结果。
29.进一步地,步骤s4具体为:若第一判断结果为设备能进行硬件加速解码,第二判断结果为设备能进行硬件加速编码,则得到设备可以进行硬件加速转码;若第一判断结果为设备无法进行硬件加速解码,第二判断结果为设备能进行硬件加速编码,则得到设备不使用硬件加速解码,使用硬件加速编码;若第一判断结果为设备能进行硬件加速解码,第二判断结果为设备能进行硬件加速编码,则得到设备使用硬件加速解码,不使用硬件加速编码;若第一判断结果为设备无法进行硬件加速解码,第二判断结果为设备无法进行硬件加速编码,则得到设备无法进行硬件加速转码。
30.进一步地,解码方法为第三方转码程序所支持的所有硬件解码方法;编码方法为第三方转码程序所支持的所有硬件编码方法。
31.请参见图2,基于上述方案,为便于更好的理解本发明实施例提供的音视频硬件加速转码检测方法,以下进行详细说明。
32.提前准备两个数据库,分别为场景数据库和站点信息数据库,一个数据库保存第三方转码程序所支持的硬件解码方法,一个数据库保存第三方转码程序所支持的硬件编码方法。
33.第一步、使用提前准备好的一小段标准视频,作为检测该设备硬件加速能力的测试素材,将标准视频输入设备中;第二步、使用提前准备好的数据库,里面存放着转码程序所支持的全部硬件解码方法,从中取出一种解码方法对视频进行解码;第三步、判断在第二步中获取到的解码方法是否为最后一个,若为最后一个则记录本设备无法进行硬件加速解码,只能使用软件解码,否则,使用第二步中获取到的解码方法进行解码并检测设备性能状态中的gpu-video decode使用率的情况;第四步、检测设备性能状态中的gpu-video decode使用率的情况,若使用率增加,
则跳转到第五步,否则跳转到第二步;第五步、当第四步检测到gpu-video decode使用率增加时,记录该解码方法为本设备的解码硬件加速方法;第六步、使用提前准备好的数据库,里面存放着转码程序所支持的全部硬件编码方法,从中取出一种编码方法对视频进行编码;第七步、判断在第六步中获取到的编码方法是否为最后一个,若为最后一个则记录本设备无法进行硬件加速编码,只能使用软件加速编码,否则,使用在第六步中获取到的编码方法进行编码并检测设备性能状态中的gpu-video decode使用率的情况;第八步、检测设备性能状态中的gpu-video decode使用率的情况,若使用率增加,则跳转到第九步,否则跳转到第六步;第九步、当第八步检测到gpu-video decode使用率增加时,记录该解码方法为本设备的解码硬件加速方法;第十步、通过上述过程后得到本设备转码需要使用的方法。
34.需要说明的是,如果检测到解码方法,但是没有检测到编码方法,就使用硬件加速解码,不使用硬件加速编码,使用软编码;反之,如果检测到编码方法,但是没有检测到解码方法,就使用硬件加速编码,不使用硬件加速解码,使用软解码,如果都没检测到,就获取硬件加速转码方法失败。
35.实施本发明实施例,通过将视频输入设备中,然后依次调用数据库中的解码方法对视频进行解码进而判断数据库中是否存在解码方法对视频进行解码,如果存在解码方法能对视频进行解码,则检测该解码方法对应的gpu-video decode使用率是否增加,如果gpu-video decode使用率没有增加,则得到判断结果为该设备能进行硬件加速解码,若不存在解码方法,则得到判断结果为该设备不能进行硬件加速解码,通过使用另一数据库中的编码方法对视频进行编码,判断数据库中是否存在编码方法对视频进行编码,如果存在编码方法,能对视频进行编码,则检测该编码方法对应的gpu-video decode使用率是否增加,如果gpu-video decode使用率没有增加,则得到判断结果为该设备能进行硬件加速编码,若不存在编码方法,则得到判断结果为该设备不能进行硬件加速编码,根据解码判断结果和编码判断结果得到设备硬件转码结果,通过该方法可以在不同设备复杂的系统环境以及硬件信息不准确的情况,判断出该设备是否支持硬件加速转码,从而减少转码失败的风险。
36.实施例二相应地,参见图3,图3是本发明提供的一种音视频硬件加速转码检测系统结构示意图,如图3所示,该音视频硬件加速转码检测系统包括:获取模块301,用于获取测试视频;第一判断模块302,用于依次调用第一数据库中的各个解码方法对测试视频进行解码,判断是否存在能对测试视频进行解码的解码方法,若存在,则获取解码成功的所有解码方法,并根据各解码成功的解码方法所对应的gpu-video decode使用率,筛选出一解码方法作为设备的硬件加速解码方法,确定第一判断结果为设备能进行硬件加速解码,若不存在,则确定第一判断结果为设备无法进行硬件加速解码,其中,第一数据库中预设若干个解码方法;
第二判断模块303,用于依次调用第二数据库中的各个编码方法对测试视频进行编码,判断是否存在能对测试视频进行编码的编码方法,若存在,则获取编码成功的所有编码方法,并根据各编码成功的编码方法所对应的gpu-video decode使用率,筛选出一编码方法作为设备的硬件加速编码方法,确定第二判断结果为设备能进行硬件加速编码,若不存在,则确定第二判断结果为设备无法进行硬件加速编码,其中,第二数据库中预设若干个编码方法;第三判断模块304,用于根据第一判断结果和第二判断结果得到设备硬件加速转码方法的检测结果。
37.在本实施例中,第一判断模块302包括调用单元3021和判断单元3022,调用单元3021用于依次调用所述第一数据中的解码方法对测试视频进行解码;判断单元3022用于判断当前解码方法能否对测试视频进行解码,若当前解码方法能对测试视频进行解码,则检测当前解码方法所对应的gpu-video decode使用率是否增加,若增加,则调用下一个解码方法进行解码判断下一个解码方法能否对测试视频进行解码,若没有增加,则记录当前解码方法为设备硬件加速解码方法,得到第一判断结果为设备能进行硬件加速解码。
38.实施例三相应地,本发明提供的音视频硬件加速转码检测电子设备,包括:处理器和存储器,存储器中存储有计算机程序,且计算机程序被配置为由处理器执行,处理器执行如本技术的实施例一所示的音视频硬件加速转码检测方法对应的操作。
39.实施例四相应地,本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行程序,该程序被处理器执行时实现本技术实施一所示的音视频硬件加速转码检测方法。
40.相比于现有技术,本发明通过将视频输入设备中,然后依次调用数据库中的解码方法对视频进行解码进而判断数据库中是否存在解码方法对视频进行解码,如果存在解码方法能对视频进行解码,则检测该解码方法对应的gpu-video decode使用率是否增加,如果gpu-video decode使用率没有增加,则得到判断结果为该设备能进行硬件加速解码,若不存在解码方法,则得到判断结果为该设备不能进行硬件加速解码,通过使用另一数据库中的编码方法对视频进行编码,判断数据库中是否存在编码方法对视频进行编码,如果存在编码方法,能对视频进行编码,则检测该编码方法对应的gpu-video decode使用率是否增加,如果gpu-video decode使用率没有增加,则得到判断结果为该设备能进行硬件加速编码,若不存在编码方法,则得到判断结果为该设备不能进行硬件加速编码,根据解码判断结果和编码判断结果得到设备硬件转码结果,通过该方法可以在不同设备复杂的系统环境以及硬件信息不准确的情况,判断出该设备是否支持硬件加速转码,从而减少转码失败的风险。
41.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献