媒体文件解码方法、装置及存储介质与流程

文档序号:17926187发布日期:2019-06-15 00:25阅读:252来源:国知局
媒体文件解码方法、装置及存储介质与流程

本申请涉及媒体文件解码方法、装置及存储介质,属于计算机技术领域。



背景技术:

解码器(decoder)是一种能将数字视音频数据流解码还原成模拟视音频信号的硬件和/或软件设备。

传统的媒体文件处理系统中,采用插件机制整合多种解码器来对媒体文件进行解码。在这种方式下,对于数据流符合视音频编解码器标准(h264、h265等)并按照多媒体标准(avi、mp4、mkv等)进行封装的媒体文件,可以使用系统中的标准解码器进行解码。

然而,媒体文件所属的厂商可能会使用自定义的编解码标准和媒体格式封装媒体文件,此时,传统媒体文件系统中的标准解码器可能无法解码这些媒体文件,导致媒体文件无法播放的问题。比如:厂商a使用自定义的编解码标准和媒体格式封装媒体文件得到媒体文件a,此时,若厂商b使用标准解码器解码媒体文件a,则可能会导致解码失败、媒体文件a无法播放的问题。



技术实现要素:

本申请提供了一种媒体文件解码方法、装置及存储介质,可以解决使用标准解码器对第三方厂商使用自定义的编解码标准和媒体格式封装的媒体文件进行解码时会解码失败的问题。本申请提供如下技术方案:

第一方面,提供了一种媒体文件解码方法,所述方法包括:

对待解码媒体文件进行解析,得到所述待解码媒体文件的目标媒体封装特征;

获取媒体封装特征与解码器插件之间的对应关系;

确定所述对应关系是否存在所述目标媒体封装特征对应的目标解码器插件;

在从所述对应关系中确定出所述目标解码器插件时,使用所述目标解码器插件对所述待解码媒体文件进行预解码,得到一帧媒体数据;

在所述一帧媒体数据正常时,使用所述目标解码器插件对所述待解码媒体文件进行解码,得到解码后的媒体文件。

可选地,所述对待解码媒体文件进行解析,得到所述待解码媒体文件的目标媒体封装特征,包括:

获取所述对待解码媒体文件的文件相关信息,所述文件相关信息包括文件头、文件中间、文件结尾和文件后缀名中的至少一种;

获取所述文件相关信息中指定位置的关键字,得到所述目标媒体封装特征。

可选地,所述待解码媒体文件为视频文件,所述一帧媒体数据为一帧图像数据;所述方法还包括:

确定所述图像数据对应的分辨率是否正常;和/或,

确定所述图像数据对应的画质是否正常。

可选地,所述方法还包括:

在所述一帧媒体数据异常时,从多个解码器插件中重新确定其他解码器插件;

使用所述其他解码器插件再次执行对所述待解码媒体文件进行预解码,得到一帧媒体数据的步骤。

可选地,所述方法还包括:

在从所述对应关系中未确定出所述目标解码器插件时,使用预设的通用解码器插件执行所述对所述待解码媒体文件进行预解码,得到一帧媒体数据的步骤。

第二方面,提供了一种媒体文件解码装置,所述装置包括:

文件解析模块,用于对待解码媒体文件进行解析,得到所述待解码媒体文件的目标媒体封装特征;

关系获取模块,用于获取媒体封装特征与解码器插件之间的对应关系;

插件确定模块,用于确定所述对应关系是否存在所述目标媒体封装特征对应的目标解码器插件;

文件预解码模块,用于在从所述对应关系中确定出所述目标解码器插件时,使用所述目标解码器插件对所述待解码媒体文件进行预解码,得到一帧媒体数据;

文件解码模块,用于在所述一帧媒体数据正常时,使用所述目标解码器插件对所述待解码媒体文件进行解码,得到解码后的媒体文件。

可选地,所述文件解析模块,用于:

获取所述对待解码媒体文件的文件相关信息,所述文件相关信息包括文件头、文件中间、文件结尾和文件后缀名中的至少一种;

获取所述文件相关信息中指定位置的关键字,得到所述目标媒体封装特征。

可选地,所述待解码媒体文件为视频文件,所述一帧媒体数据为一帧图像数据;所述装置还包括:

分辨率确定模块,用于确定所述图像数据对应的分辨率是否正常;

画面确定模块,用于确定所述图像数据对应的画质是否正常。

第三方面,提供一种媒体文件解码装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的媒体文件解码方法。

第四方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的媒体文件解码方法。

本申请的有益效果在于:通过对待解码媒体文件进行解析,得到待解码媒体文件的目标媒体封装特征;获取媒体封装特征与解码器插件之间的对应关系;确定对应关系是否存在目标媒体封装特征对应的目标解码器插件;在从对应关系中确定出目标解码器插件时,使用目标解码器插件对待解码媒体文件进行预解码,得到一帧媒体数据;在一帧媒体数据正常时,使用目标解码器插件对待解码媒体文件进行解码,得到解码后的媒体文件;可以解决使用标准解码器对第三方厂商使用自定义的编解码标准和媒体格式封装的媒体文件进行解码时会解码失败的问题;由于第三方厂商在使用自定义的编解码标准和自定义的媒体格式封装媒体文件时,得到的媒体文件通常具有特定的媒体封装特征,因此,通过获取媒体封装特征与解码器插件之间的对应关系;分析待解码媒体文件的目标媒体封装特征,从对应关系中确定该目标媒体封装特征对应的目标解码器插件,可以适配出使用自定义的编解码标准和自定义的媒体格式封装的待解码媒体文件所对应的目标解码器插件,避免使用标准解码器无法处理该待解码媒体文件的问题,可以提高解码器的自适应解码能力。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。

附图说明

图1是本申请一个实施例提供的媒体文件解码系统的结构示意图;

图2是本申请一个实施例提供的媒体文件解码方法的流程图;

图3是本申请一个实施例提供的媒体文件解码装置的框图;

图4是本申请一个实施例提供的媒体文件解码装置的框图。

具体实施方式

下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。

图1是本申请一个实施例提供的媒体文件解码系统的结构示意图,如图1所示,该系统至少包括:管理节点110、自适应节点120和解码节点130。

可选地,管理节点110、自适应节点120和解码节点130属于同一设备(比如同一解码器);或者,属于不同设备(比如不同的解码器)。在一个示例中,管理节点110、自适应节点120和解码节点130属于同一设备,且管理节点110、自适应节点120和解码节点130基于进程间通信(interprocesscommunication,ipc)实现传播和交换信息。当然,管理节点110、自适应节点120和解码节点130也可以通过其他方式通信连接,本实施例不对该通信连接方式作限定。

管理节点110用于与上层应用进行交互,并对自适应节点120和解码节点130进行管理。示意性地,管理节点110用于接收上层应用下发的解码任务,并将该解码任务的任务信息发送至自适应节点120。其中,任务信息包括但不限于待解码媒体文件和/或该待解码媒体文件的文件名。

自适应节点120用于根据管理节点110发送的任务信息确定解码任务对应的目标解码器插件。

示意性地,自适应节点120用于对待解码媒体文件进行解析,得到待解码媒体文件的目标媒体封装特征;获取媒体封装特征与解码器插件之间的对应关系;确定对应关系是否存在目标媒体封装特征对应的目标解码器插件。

其中,自适应节点120预先存储有媒体封装特征与解码器插件之间的对应关系,该对应关系的建立方式包括:搜集大量的第三方媒体文件;对每个第三方媒体文件进行解析得到媒体封装特征,并获取该第三方媒体文件的解码器插件,建立各个媒体封装特征与解码器插件之间的对应关系。

自适应节点120在确定出目标媒体封装特征对应的目标解码器插件之后,将该目标解码器插件返回至管理节点110。

管理节点110还用于:从解码节点130中调用自适应节点120返回的目标解码器插件;使用目标解码器插件对待解码媒体文件进行预解码,得到一帧媒体数据;在一帧媒体数据正常时,使用目标解码器插件对待解码媒体文件进行解码,得到解码后的媒体文件。

其中,解码节点130包括对应关系包括的各个解码器插件,以及通用解码器插件。通用解码器插件是采用多种插件机制整合得到的,并支持对多种视音频编解码器标准以及按照不同多媒体标准封装的媒体文件进行解码。

由于第三方厂商在使用自定义的编解码标准和自定义的媒体格式封装媒体文件时,得到的媒体文件通常具有特定的媒体封装特征,比如:在文件头中具有指定关键字等,因此,本实施例中,通过获取媒体封装特征与解码器插件之间的对应关系;分析待解码媒体文件的目标媒体封装特征,从对应关系中确定该目标媒体封装特征对应的目标解码器插件,可以适配出使用自定义的编解码标准和自定义的媒体格式封装的待解码媒体文件所对应的目标解码器插件,避免使用标准解码器无法处理该待解码媒体文件的问题,可以提高解码器的自适应解码能力。

图2是本申请一个实施例提供的媒体文件解码方法的流程图,本实施例以该方法应用于图1所示的媒体文件解码系统中为例进行说明。该方法至少包括以下几个步骤:

步骤201,自适应节点对待解码媒体文件进行解析,得到待解码媒体文件的目标媒体封装特征。

可选地,目标媒体封装特征用于指示封装待解码媒体文件时使用的编解码标准和/或封装标准。其中,编解码标准包括通用的、已发布的编解码标准,比如:h264、h265等标准;还包括厂商自定义的、小范围内使用的编解码标准,比如:某公司内部使用的编解码标准;封装标准包括通用的、已发布的封装标准,比如:avi、mp4、mkv等标准;还包括厂商自定义的、小范围内使用的封装标准,比如:某公司内部使用的封装标准。

在一个示例中,目标媒体封装特征是从待解码媒体文件的文件相关信息中获取到的。此时,自适应节点获取对待解码媒体文件的文件相关信息,该文件相关信息包括文件头、文件中间、文件结尾和文件后缀名中的至少一种;获取文件相关信息中指定位置的关键字,得到目标媒体封装特征。在待解码媒体文件是第三方厂商使用自定义的编解码标准和自定义的媒体格式封装得到的时,该待解码媒体文件的文件相关信息中会包括该第三方厂商对应的关键字,比如:在文件头中包括第三方厂商的名称、文件中间和文件结尾特定长度字节的二进制数据中包括第三方厂商的名称缩写、媒体后缀名是第三方厂商专用的后缀名等,此时,从文件相关信息中会获取到关键字,通过这些关键字即可判断出待解码媒体文件是否是第三方厂商使用自定义的编解码标准和自定义的媒体格式封装得到的。

步骤202,自适应节点获取媒体封装特征与解码器插件之间的对应关系。

可选地,对应关系预存在自适应节点所属的设备中。对应关系的建立过程至少包括:

1、搜集大量的第三方厂商生成的媒体文件。

其中,媒体文件是多个的第三方厂商生成的,媒体文件的数量可以是成百上千的、甚至数以万计的,本实施例不对媒体文件的数量作限定。

2、对于每个媒体文件,获取该媒体文件的文件相关信息。

文件相关信息包括每个媒体文件的文件头、文件中间、文件结尾和文件后缀名中的至少一种。

3、从文件相关信息中获取第三方厂商的媒体封装特征。

第三方厂商的媒体封装特征与通用标准的媒体封装特征不同。

4、建立第三方厂商的媒体封装特征与第三方厂商的解码器插件之间的对应关系。

步骤203,自适应节点确定对应关系是否存在目标媒体封装特征对应的目标解码器插件。

步骤204,在从对应关系中确定出目标解码器插件时,管理节点使用目标解码器插件对待解码媒体文件进行预解码,得到一帧媒体数据。

可选地,自适应节点将目标解码器插件的插件类型返回至管理节点;管理节点从解码节点中调用该插件类型对应的目标解码器插件,使用目标解码器插件对待解码媒体文件进行预解码,得到一帧媒体数据。

可选地,在从对应关系中未确定出目标解码器插件时,使用预设的通用解码器插件对待解码媒体文件进行预解码,得到一帧媒体数据。

步骤205,在一帧媒体数据正常时,管理节点使用目标解码器插件对待解码媒体文件进行解码,得到解码后的媒体文件。

可选地,管理节点预解码得到一帧媒体数据后,会检测该帧媒体数据是否正常;若该帧媒体数据正常,说明目标解码器插件能够正常解码待解码媒体文件,后续可以继续使用目标解码器插件进行解码;若该帧媒体数据异常,说明目标解码器插件不能正常解码待解码媒体文件,后续需要更换解码器插件对待解码媒体文件进行解码。

在一个示例中,待解码媒体文件为视频文件,此时,一帧媒体数据为一帧图像数据;管理节点检测该帧媒体数据是否正常,包括:确定图像数据对应的分辨率是否正常;和/或,确定图像数据对应的画质是否正常。

其中,确定图像数据对应的分辨率是否正常可以是检测图像数据的比例分辨率是否为预设比例;在图像数据的比例分辨率是预设比例时,确定图像数据对应的分辨率正常;在图像数据的比例分辨率不是预设比例时,确定图像数据对应的分辨率异常。该预设比例可以是16:9、4:3等,本实施例不对预设比例的取值作限定。

确定图像数据对应的画质是否正常可以是检测图像数据的显示内容中是否包括绿屏情况和/或花屏情况;在图像数据的显示内容不包括绿屏情况和花屏情况时确定图像数据对应的画质正常;在图像数据的显示内容包括绿屏情况和/或花屏情况时确定图像数据对应的画质异常。

在另一个示例中,待解码媒体文件为音频文件,此时,一帧媒体数据为一帧音频数据;管理节点检测该帧媒体数据是否正常,包括:确定该帧音频数据中的噪声数据占整帧音频数据的比例是否达到比例阈值;在噪声数据占整帧音频数据的比例未达到比例阈值时确定该帧媒体数据正常;在噪声数据占整帧音频数据的比例达到比例阈值时确定该帧媒体数据异常。其中,比例阈值可以是50%、40%等,本实施例不对该比例阈值的取值作限定。

可选地,在一帧媒体数据异常时,管理节点从多个解码器插件中重新确定其他解码器插件;使用其他解码器插件再次执行对待解码媒体文件进行预解码,得到一帧媒体数据的步骤,直至预解码得到的一帧媒体数据正常为止,此时,管理节点向上层应用返回解码成功消息;或者,直至所有的解码器插件均已被调用,且各个解码器插件预解码得到的一帧媒体数据均异常时停止,此时,管理节点向上层应用返回解码失败消息。

综上所述,本实施例提供的媒体文件解码方法,通过对待解码媒体文件进行解析,得到待解码媒体文件的目标媒体封装特征;获取媒体封装特征与解码器插件之间的对应关系;确定对应关系是否存在目标媒体封装特征对应的目标解码器插件;在从对应关系中确定出目标解码器插件时,使用目标解码器插件对待解码媒体文件进行预解码,得到一帧媒体数据;在一帧媒体数据正常时,使用目标解码器插件对待解码媒体文件进行解码,得到解码后的媒体文件;可以解决使用标准解码器对第三方厂商使用自定义的编解码标准和媒体格式封装的媒体文件进行解码时会解码失败的问题;由于第三方厂商在使用自定义的编解码标准和自定义的媒体格式封装媒体文件时,得到的媒体文件通常具有特定的媒体封装特征,因此,通过获取媒体封装特征与解码器插件之间的对应关系;分析待解码媒体文件的目标媒体封装特征,从对应关系中确定该目标媒体封装特征对应的目标解码器插件,可以适配出使用自定义的编解码标准和自定义的媒体格式封装的待解码媒体文件所对应的目标解码器插件,避免使用标准解码器无法处理该待解码媒体文件的问题,可以提高解码器的自适应解码能力。

另外,通过在确定出目标解码器插件之后,使用该目标解码器插件对待解码媒体文件进行预解码,而不是对整个待解码媒体文件进行解码;可以避免确定出的目标解码器插件不适用于对待解码媒体文件解码,浪费解码整个待解码媒体文件所消耗的资源的问题;只有在目标解码器插件适用于对待解码媒体文件解码时才对整个待解码媒体文件进行解码,可以节省解码待解码媒体文件所消耗的资源。

图3是本申请一个实施例提供的媒体文件解码装置的框图,本实施例以该装置应用于图1所示的媒体文件解码系统中为例进行说明。该装置至少包括以下几个模块:文件解析模块310、关系获取模块320、插件确定模块330、文件预解码模块340和文件解码模块350。

文件解析模块310,用于对待解码媒体文件进行解析,得到所述待解码媒体文件的目标媒体封装特征;

关系获取模块320,用于获取媒体封装特征与解码器插件之间的对应关系;

插件确定模块330,用于确定所述对应关系是否存在所述目标媒体封装特征对应的目标解码器插件;

文件预解码模块340,用于在从所述对应关系中确定出所述目标解码器插件时,使用所述目标解码器插件对所述待解码媒体文件进行预解码,得到一帧媒体数据;

文件解码模块350,用于在所述一帧媒体数据正常时,使用所述目标解码器插件对所述待解码媒体文件进行解码,得到解码后的媒体文件。

相关细节参考上述方法实施例。

可选地,所述文件解析模块310,用于:

获取所述对待解码媒体文件的文件相关信息,所述文件相关信息包括文件头、文件中间、文件结尾和文件后缀名中的至少一种;

获取所述文件相关信息中指定位置的关键字,得到所述目标媒体封装特征。

可选地,所述待解码媒体文件为视频文件,所述一帧媒体数据为一帧图像数据;所述装置还包括:分辨率确定模块和画面确定模块。

分辨率确定模块,用于确定所述图像数据对应的分辨率是否正常;

画面确定模块,用于确定所述图像数据对应的画质是否正常。

需要说明的是:上述实施例中提供的媒体文件解码装置在进行媒体文件解码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将媒体文件解码装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的媒体文件解码装置与媒体文件解码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图4是本申请一个实施例提供的媒体文件解码装置的框图,该装置可以是包含图1所示的媒体文件解码系统的装置,比如:智能手机、平板电脑、笔记本电脑、台式电脑或服务器。媒体文件解码装置还可能被称为用户设备、便携式终端、膝上型终端、台式终端、控制终端、会议终端等,本实施例对此不作限定。该装置至少包括处理器401和存储器402。

处理器401可以包括一个或多个处理核心,比如:4核心处理器、4核心处理器等。处理器401可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的媒体文件解码方法。

在一些实施例中,媒体文件解码装置还可选包括有:外围设备接口和至少一个外围设备。处理器401、存储器402和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。

当然,媒体文件解码装置还可以包括更少或更多的组件,本实施例对此不作限定。

可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的媒体文件解码方法。

可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的媒体文件解码方法。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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