具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。
在本申请实施例中,通过检测待转码文件是否符合硬转码条件,再根据检测结果对待转码文件进行硬转码或软转码处理。待转码文件可以是待转码的视频流文件或音频流文件,对应用于转码的硬件可以是显卡设备或声卡设备。本实施例主要以视频流文件为例进行说明,由于显卡的核心处理器对视频图像的处理功能强、速度快,因此硬转码相比于仅利用CPU进行转码具有速度快且占用CPU和内存资源少的优点。
实施例一:
请参考图1,本实施例提供了一种转码加速方法,包括下面步骤:
步骤101,接受转码任务,开始转码程序;
步骤102,接受转码任务后先检测转码硬件环境,判断用于转码的硬件是否符合硬件加速条件;如果符合,执行步骤104;如果不符合,则转到步骤103对待转码文件进行软转码处理。硬件加速条件是指,用于转码的硬件本身是否具有解码或编码的功能,如果有,则判断为用于转码的硬件符合硬件加速条件;如果没有,则判断为用于转码的硬件不符合硬件加速条件。
步骤103,对待转码文件进行软转码处理,软转码处理是指,用于转码的硬件不符合硬件加速条件或待转码文件不符合硬转码条件,无法通过硬件对待转码文件进行转码,解码步骤和编码步骤都只能利用CPU进行,即软转码处理包括软解码和软编码处理。
步骤104,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式判断待转码文件是否符合硬转码条件,硬转码条件包括硬解码条件和硬编码条件。当然,硬转码条件还可以是其它根据用户需要预先设定的条件,比如待转码文件的格式条件,用户设定对于特定格式的待转码文件才进行硬转码处理。硬解码条件指,待转码文件符合用于转码的硬件所支持的文件格式;硬编码条件指,目标文件符合用于转码的硬件所支持的文件格式。
判断待转码文件是否符合用于转码的硬件所支持的文件格式可以采用下面方法:将输入的待转码文件的格式与硬件解码列表进行比对,若其格式在硬件解码列表范围内,则判断为待转码文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬解码条件;若其格式不在硬件解码列表范围内,则判断为待转码文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬解码条件。
判断目标文件是否符合用于转码的硬件所支持的文件格式可以采用下面方法:从转码参数中提取目标文件的格式信息,将格式信息与硬件编码列表进行比对,若其格式在硬件编码列表范围内,则判断为目标文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬编码条件;若其格式不在硬件编码列表范围内,则判断为目标文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬编码条件;
基于上述判断,待转码文件可能出现以下情况:
条件1:待转码文件同时符合硬解码条件和硬编码条件;
条件2:待转码文件符合硬解码条件但不符合硬编码条件;
条件3:待转码文件不符合硬解码条件但符合硬编码条件;
条件4:待转码文件同时不符合硬解码条件和硬编码条件。
当步骤104检测为待转码文件符合条件4时,则转到步骤103,对待转码文件进行软解码软编码的软转码处理。
步骤105,当步骤104检测为待转码文件符合条件1时,则对待转码文件进行硬解码硬编码的硬转码处理。
步骤106,当步骤104检测为待转码文件符合条件2时,则对待转码文件进行硬解码软编码的硬转码处理。硬解码软编码指,对待转码文件先进行硬解码,再利用CPU对硬解码后的数据进行编码以得到需要转码成的目标文件。
步骤107,当步骤104检测为待转码文件符合条件3时,则对待转码文件进行软解码硬编码的硬转码处理。软解码硬编码指,先利用CPU对待转码文件进行解码,再将解码后的数据进行硬编码以得到需要转码成的目标文件。
步骤108,根据上述步骤对待转码文件的检测结果对待转码文件进行相应的硬转码或软转码处理,并将转码后的目标文件进行输出。
比如,在Windows平台下,Directshow框架系统下,以Intel Media SDK(因特尔显卡处理视频的专用软件开发工具包)为例,利用硬件,即Intel显卡,来实现视频的硬件加速转码。包括下面步骤:
步骤1,检测Intel显卡硬件是否符合Intel Media SDK的硬件加速条件,即Intel显卡硬件或核心显示芯片本身是否具有视频加速解码或编码能力,如果不符合,则对视频流进行软转码处理;如果符合,则执行步骤2。
步骤2,检测输入视频流是否符合硬转码条件,硬转码条件包括硬解码条件和硬编码条件。检测当前输入视频流的格式是否存在于Intel显卡硬件的解码列表中(列表的视频流格式包括H.264/VC1/Mpeg2),如果存在,则判断为符合硬解码条件,如果不存在,则判断为不符合硬解码条件。检测当前输入视频流需要转码成的目标文件的格式是否存在于Intel显卡硬件的编码列表中(列表格式包括H.264/Mpeg2),如果存在,则判断为符合硬编码条件,如果不存在,则判断为不符合硬编码条件。
步骤3,在步骤2中,如果检测到当前输入视频流同时符合硬解码条件和硬编码条件时,则对当前输入视频流进行硬解码硬编码的硬转码处理;如果检测到当前输入视频流符合硬解码条件不符合硬编码条件,则对当前输入视频流进行硬解码软编码的硬转码处理;如果检测到当前输入视频流不符合硬解码条件符合硬编码条件,则对当前输入视频进行软解码硬编码的硬转码处理;如果检测到当前输入视频流同时不符合硬解码条件和硬编码条件,则对当前输入视频流进行软解码软编码的软转码处理。
步骤4,根据步骤3的检测结果对当前输入视频流进行硬转码或软转码,并将转码后的目标文件进行输出。
本实施提供的转码加速方法,先检测视频流或音频流等待转码文件是否符合硬转码条件,对符合硬转码条件的待转码文件进行硬转码处理,由于硬转码速度更快,占用CPU和内存资源少,故该转码加速方法具有转码速度快,占用CPU和内存资源少的优点。
实施例二:
请参考图2,本实施例提供了一种转码器,包括硬件检测模块201、转码检测模块202和转码模块205。其中,转码检测模块202包括待转码文件格式检测单元203和目标文件格式检测单元204,转码模块205包括解码单元206和编码单元207。
硬件检测模块201用于检测转码硬件环境,判断用于转码的硬件是否符合硬件加速条件;如果符合,则继续由转码检测模块202检测待转码文件是否符合硬转码条件;如果不符合,则由转码模块205对待转码文件进行软转码处理,即直接命令转码模块205中的解码单元206和编码单元207对待转码文件进行软解码和软编码处理,仅由CPU进行解码和编码操作。硬件加速条件指,用于转码的硬件本身是否具有解码或编码的功能,如果有,则判断为用于转码的硬件符合硬件加速条件;如果没有,则判断为用于转码的硬件不符合硬件加速条件。
转码检测模块202用于检测待转码文件是否符合硬转码条件,转码检测模块202包括待转码文件格式检测单元203和目标文件格式检测单元204,硬转码条件包括硬解码条件和硬编码条件。硬解码条件指,待转码文件的格式符合用于转码的硬件所支持的文件格式。硬编码条件指,目标文件的格式符合用于转码的硬件所支持的文件格式。待转码文件格式检测单元203用于判断当前待转码文件是否符合硬解码条件,具体为待转码文件格式检测单元203将输入的待转码文件的格式与硬件解码列表进行比对,若其格式在硬件解码列表范围内,则判断为待转码文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬解码条件;若其格式不在硬件解码列表范围内,则判断为待转码文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬解码条件。目标文件格式检测单元204用于判断待转码文件是否符合硬编码条件,具体为目标文件格式检测单元204从转码参数中提取目标文件的格式信息,将格式信息与硬件编码列表进行比对,若其格式在硬件编码列表范围内,则判断为目标文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬编码条件;若其格式不在硬件编码列表范围内,则判断为目标文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬编码条件。
当硬件检测模块201检测到用于转码的硬件符合硬件加速条件,待转码文件格式检测单元203检测到待转码文件符合硬解码条件且目标文件格式检测单元204检测到待转码文件符合硬编码条件时,解码单元206对待转码文件进行硬解码处理,编码单元207对解码后的待转码文件进行硬编码处理;
当硬件检测模块201检测到用于转码的硬件符合硬件加速条件,待转码文件格式检测单元203检测到待转码文件符合硬解码条件且目标文件格式检测单元204检测到待转码文件不符合硬编码条件时,解码单元206对待转码文件进行硬解码处理,编码单元207对解码后的待转码文件进行软编码处理;
当硬件检测模块201检测到用于转码的硬件符合硬件加速条件,待转码文件格式检测单元203检测到待转码文件不符合硬解码条件且目标文件格式检测单元204检测到待转码文件符合硬编码条件时,解码单元206对待转码文件进行软解码处理,编码单元207对解码后的待转码文件进行硬编码处理;
当硬件检测模块201检测到用于转码的硬件符合硬件加速条件,待转码文件格式检测单元203检测到待转码文件不符合硬解码条件且目标文件格式检测单元204检测到待转码文件不符合硬编码条件时,解码单元206对待转码文件进行软解码处理,编码单元207对解码后的待转码文件进行软编码处理。
转码模块205,用于根据硬件检测模块201和转码检测模块202的检测结果对待转码文件进行相应转码处理,并将转码后的目标文件进行输出。
本实施例提供的转码器通过转码检测模块检测待转码文件是否符合硬转码条件来判断当前待转码文件是否可以进行硬转码,对于可以进行硬转码的待转码文件进行硬转码处理可以加快整个转码过程的速度,通过硬转码还可以减少对CPU和内存资源的占用。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。