一种通用的多媒体播放器框架
【技术领域】
本发明涉及一种关于嵌入式开发平台上的多媒体播放器框架的领域。
【背景技术】
随着互联网技术和数字技术的共同发展,更多的数字(音视频)作品被放到了网络这个开放的大环境中,而且数字作品也因为网络技术的发展得到了广泛的传播和应用,虽然更多的人可以共享信息,但是太多的人都忽略了数字作品从产生到四处传播会有多少人的利益受到损害。近年来,数字作品的合法使用,版权所属,合法收益问题已经从不同领域困扰着数字作品的内容提供者、传播者、使用者等,而且很多人都可以对数字作品的原版进行无限制的任意编辑、修改、拷贝和散布,所以数字作品版权保护问题是刻不容缓的。对于这种现象的发生,多数以提供多媒体内容的服务商会对自己拥有版权的音乐、电影、教育课件进行加密,对于具体的加密方式,各自公司选择不同的DRM(Digital Rights Management,数字版权保护)技术,而且经过多年的运行,在版权保护方面的技术已经相当成熟,因此,他们所面临的问题只是如何选择嵌入式平台,开发具有特色的消费产品。
进入21世纪后,在信息科技、电子技术的迅猛的发展,电子市场的竞争越来越激烈的前提下,产品的质量、产品的开发周期、产品的上市周期越来越受到各产品开发商的重视,各产品开发商都争取在最短的时间内开发出功能、性能满足客户需求的产品、具有独特竞争力的产品。而身为影音多媒体内容提供商来说,唯一能做到跟其他公司有差异的方法,就是将拥有自己版权的音视频资源展现出来。因此,他们在选择开发电子产品的时候更加会去关注多媒体的播放器架构是否友好,能否容易的将自己加密的多媒体内容在电子产品中作为一个亮点展示给用户。
对电子产品厂商来说,多媒体播放器的架构是影响他们开发周期以及开发成本与上市时间的主要因素之一。目前,在多媒体嵌入式软件开发平台上,主流的播放器框架包括:依次连接的UI层播放器模块、多媒体类型识别器、媒体文件解析器、音视频解码器、音视频同步输出模块,所述多媒体类型识别器、媒体文件解析器均连接到一播放器数据操作接口模块。
目前国内外能够实现多媒体播放的嵌入式开发平台来看,有以下三种类型:1、类似微软等国际大公司提供的嵌入式软件开发平台,带有对应开发平台一套标准的媒体播放框架;2、国内厂家提供的能够实现多媒体播放的软件开发平台,媒体框架由厂家自己定义,播放器实现不一,没有通用扩展接口;3、通用开发嵌入式软件平台,可以实现多个领域的电子产品,一般只带有简单多媒体实现功能。
对于上述三种类型的开发平台自带的多媒体播放器对开发商来说都有不同的缺点:
第一种所提到的国际大公司开发平台提供的多媒体播放器,由于他们各自的平台拥有各自的一套媒体流程标准,因此在数字版权保护方面的技术也有自己的一套标准,而这套标准与播放器紧密相连,如果产品开发商要在他们的平台上实现播放技术,同时又要对自己的版权进行保护的情况下,就只能用开发平台上面的数字版权保护技术,这样就要求产品开发商要重新实现自己的版权保护技术,这样,产品开发商不但开发成本上升,开发周期也加长。
第二种所提到的国内厂家提供的嵌入式平台,一般情况下多媒体播放器采用目前已知的开源播放器框架,如FFMPEG、opencore或者基于目前常用的播放器框架流程开发出来的自己的播放器,总体来讲,该嵌入式平台扩展性较强,可以达到厂商移植的目的,但是由于不是自己开发的播放器,在代码移植以及架构流程层上肯定要花费大量的时间、人力才能实现自己移植的目的,这样的话,开发周期受制于平台厂商自带的多媒体播放器类型,严重影响产品上市时间。
最后一种提到的开发平台,由于是通用平台,其所带的多媒体播放框架,软件开发包里面媒体类型支持不多,产品开发商是可以容易实现自己的加解密技术,但是受限于播放框架支持的媒体类型不多,如果要自己增加媒体类型,无疑会增加越来越多的人力成本投入,以及延长开发周期。
【发明内容】
本发明要解决的技术问题,在于提供一种通用的多媒体播放器框架,它能够在不同类型的媒体播放器上扩展一套通用接口,方便移植多媒体版权保护技术。
本发明是这样实现的:一种通用的多媒体播放器框架,它包括:依次连接的播放器模块、多媒体类型识别器、媒体文件解析器、音视频解码器、音视频同步输出模块,所述多媒体类型识别器、媒体文件解析器均连接到一播放器数据操作接口模块,所述播放器数据操作接口模块挂载一通用数据操作接口模块,所述多媒体类型识别器挂载一通用文件类型识别器,所述媒体文件解析器挂载一通用文件类型解析器,所述音视频解码器挂载一通用音视频解码器。
进一步的,所述通用数据操作接口模块包括:与所述播放器数据操作接口模块内的接口函数一一对应的接口函数,所述通用数据操作接口模块的每个接口函数均设置有用于添加功能函数的预留接口。
进一步的,所述通用文件类型识别器包括:与所述多媒体类型识别器内的接口函数一一对应的接口函数,所述通用文件类型识别器的每个接口函数均设置有用于添加功能函数的预留接口。
进一步的,所述通用文件类型解析器包括:与所述媒体文件解析器内的接口函数一一对应的接口函数,所述通用文件类型解析器的每个接口函数均设置有用于添加功能函数的预留接口。
进一步的,所述通用音视频解码器包括:与所述音视频解码器内的接口函数一一对应的接口函数,所述通用音视频解码器的每个接口函数均设置有用于添加功能函数的预留接口。
进一步的,所述通用数据操作接口模块、通用文件类型识别器、通用文件类型解析器、通用音视频解码器均对预留接口所接收的功能函数进行验证判断,如果不符合所需要的结果,则上报错误。
进一步的,所述通用数据操作接口模块、通用文件类型识别器、通用文件类型解析器、通用音视频解码器均带有关于预留接口的实现案例,以确保它们本身是挂载在播放器的框架内。
本发明具有如下优点:
本发明主要是在所述播放器数据操作接口模块挂载一通用数据操作接口模块,所述多媒体类型识别器挂载一通用文件类型识别器,所述媒体文件解析器挂载一通用文件类型解析器,所述音视频解码器挂载一通用音视频解码器,以上挂载的各个通用模块均在接口函数上设置有用于添加功能函数的预留接口,开发商可以根据具体需要实现什么功能,再将可实现该功能的对应函数通过预留接口添加到所述通用模块上,这样就可以在不同类型的媒体播放器上扩展一套通用接口,方便开发者在不需要关心媒体框架类型的前提下实现对播放器的扩展功能,尤其是更容易实现多媒体数字版权保护的功能。
【附图说明】
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法一实施例的结构示意图。
图2为本发明通用文件类型识别器的结构示意图。
图3为图2中接口函数1的模块示意图。
图4为本发明通用文件类型解析器的结构示意图。
图5为本发明通用数据操作接口模块的原理示意图。
【具体实施方式】
请参阅图1至图5所示,对本发明的实施例进行详细的说明。
如图1,本发明的一实施例,它包括:依次连接的UI层播放器模块、多媒体类型识别器、媒体文件解析器、音视频解码器、音视频同步输出模块,所述多媒体类型识别器、媒体文件解析器均连接到一播放器数据操作接口模块,所述播放器数据操作接口模块挂载一通用数据操作接口模块,所述多媒体类型识别器挂载一通用文件类型识别器,所述媒体文件解析器挂载一通用文件类型解析器,所述音视频解码器挂载一通用音视频解码器。所述通用数据操作接口模块包括:与所述播放器数据操作接口模块内的接口函数一一对应的接口函数,所述通用数据操作接口模块的每个接口函数均设置有用于添加功能函数的预留接口,每个接口函数设置的预留接口的数量,是根据具体需求来决定。所述通用文件类型识别器包括:与所述多媒体类型识别器内的接口函数一一对应的接口函数,所述通用文件类型识别器的每个接口函数均设置有用于添加功能函数的预留接口,每个接口函数设置的预留接口的数量,是根据具体需求来决定。所述通用文件类型解析器包括:与所述媒体文件解析器内的接口函数一一对应的接口函数,所述通用文件类型解析器的每个接口函数均设置有用于添加功能函数的预留接口,每个接口函数设置的预留接口的数量,是根据具体需求来决定。所述通用音视频解码器包括:与所述音视频解码器内的接口函数一一对应的接口函数,所述通用音视频解码器的每个接口函数均设置有用于添加功能函数的预留接口,每个接口函数设置的预留接口的数量,是根据具体需求来决定。所述通用数据操作接口模块、通用文件类型识别器、通用文件类型解析器、通用音视频解码器均对预留接口所接收的功能函数进行验证判断,如果不符合所需要的结果,则上报错误。所述通用数据操作接口模块、通用文件类型识别器、通用文件类型解析器、通用音视频解码器均带有关于预留接口的实现案例,以确保它们本身是挂载在播放器的框架内。
结合图2,所述通用文件类型识别器包括:与所述多媒体类型识别器内的接口函数一一对应的接口函数,如接口函数1、接口函数2...,所述通用文件类型识别器的每个接口函数均设置有预留接口,如图3,所述接口函数1设置有预留接口1和预留接口2...等,开发商可以根据具体需要实现什么功能,再将可实现该功能的对应函数通过预留接口添加到所述通用文件类型识别器。所述通用文件类型识别器包含有相关的预留接口参数与返回值详细说明文档,对预留接口所返回的结果进行必要的验证判断,如果确认不符合所需要的结果值,则上报错误,防止错误状态一直延续;所述通用文件类型识别器带有简单的关于预留接口的实现案例,确保通用文件类型识别器是挂载在播放器框架之内,开发商不去实现该模块也要保证播放器能够正常工作。
结合图4,所述通用文件类型解析器包括:与所述媒体文件解析器内的接口函数一一对应的接口函数,如接口函数1、接口函数2...,所述通用文件类型解析器的每一个接口函数均设置有预留接口,开发商可以根据具体需要实现什么功能,再将可实现该功能的对应函数通过预留接口添加到所述通用文件类型解析器。所述通用文件类型解析器包含有相关的预留接口参数与返回值详细说明文档,对预留接口所返回的结果进行必要的验证判断,如果确认不符合所需要的结果值,则上报错误,防止错误状态一直延续;带有简单的关于预留接口的实现案例,确保通用文件类型解析器是挂载在播放器框架之内,开发商不去实现该模块也要保证播放器能够正常工作。
结合图5,所述通用数据操作接口模块挂载到所述播放器数据操作接口模块上,它包括:与所述播放器数据操作接口模块内的接口函数一一对应的接口函数,所述通用数据操作接口模块每个接口函数均设置有用于添加功能函数的预留接口。通过所述播放器数据操作接口模块的接口函数对通用数据操作接口模块的相对应接口函数进行调用,并确保在通用数据操作接口模块不需要起作用的时候,调用原来的播放器数据操作接口模块;通用数据操作接口模块中;所述通用数据操作接口模块应该对预留接口接收的开发者提供的对应函数的返回结果进行必要的判断,如果有误,应该上报,防止在错误的情况下,播放器继续运行。
所述通用音视频解码器包括:与所述音视频解码器内的接口函数一一对应的接口函数,所述通用音视频解码器的每个接口函数均设置有用于添加功能函数的预留接口。它可以实现跟原有播放器框架的挂载关系,实现原播放器能够识别的数据输入输出接口,只需要告知开发者输入数据的类型以及输出数据需要的类型,这样开发者在需要添加自己的解码器的时候,不需要去关注跟播放器交互的接口,只需要关注自己解码器的实现,方便开发者开发。
如果开发者要移植自己多媒体数字版权保护技术到产品中,目前市面常用的大致可以分为两种加密方式,一种是整个文件都进行数字加密;另一种是文件信息部分数字和文件结构都是没有改变,只对文件所带的音视频编码数据进行加密。
首先分析第一种加密方式在本发明的播放器框架下需要移植的步骤:
1.采用对整个文件进行加密,确认解密后文件类型在目前播放器能够正常支持的情况下,只需要将开发者的解密库,通过预留接口添加到所述通用数据操作接口模块中,播放器方可获取该文件的解密后数据,从而实现整个播放器的正常运行,达到移植目的;
2.如果目前的播放器还不能够正常支持步骤1中的经过解密后的文件,那么先判读播放器所带的多媒体类型识别器是否可以识别该文件类型,如果所述多媒体类型识别器不能识别该文件类型,则需要通过预留接口将可以对该文件进行识别的对应函数,添加到通用文件类型识别器中,从而达到对该文件类型识别;
3.经过步骤2后,文件类型已经可以识别出来,如果播放器当前所带的媒体文件解析器可以支持该类型的文件,可跳到步骤4,否则需要将开发者自己的对该文件解析的代码通过预留接口添加到通用文件类型解析器中;
4.经过步骤3后,文件音/视频编码类型已经可以解析出来,如果当前播放器所带的音视频解码器能够支持该类型,则实现加密文件的播放器的正常运行,否则需要通过预留接口将所缺的对应函数添加到通用音视频解码器。
对于第二种的加密方式,只需要按照以下步骤进行移植即可:
1’.判断当前播放器所带的多媒体类型识别器是否支持该文件,如果支持该文件,则跳至步骤2’,否则需要通过预留接口将可以对该文件进行识别的实现函数,添加到通用文件类型识别器中,从而达到对该文件类型识别;
2’.无论播放器所带的媒体文件解析器是否支持该文件,为了使解析器输出无加密的编码数据至解码器解码,都需要将开发者自己的对该文件解析的代码通过预留接口添加到通用文件类型解析器中;
3’.经过步骤2’后,文件音/视频编码类型可以被解析出来,如果当前播放器所带的音视频解码器能够支持该类型,则实现加密文件的播放器的正常运行,否则需要通过预留接口将所缺的对应函数添加到通用音视频解码器。
经过以上三个步骤既可以实现第二种加密技术移植到产品中。
以上所述,仅为本发明较佳实施例而已,故不能依此限定本发明实施的范围,即依本发明专利范围及说明书内容所作的等效变化与修饰,皆应仍属本发明涵盖的范围内。