Android多媒体开发介绍
一、 多媒体架构
基于第三方PacketVideo公司的OpenCORE来实现,支持所有通用的音频/视频/静态图像格式,包括:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等。从功能上分为两部分,一是音/视频的回放(PlayBack),二是音视频的纪录(Recorder)。
CODEC(编解码器)使用OpenMAX 1L interface接口进行扩展,可以方便地支持hardware / software codecplug-ins。
Open Core多媒体框架有一套通用可扩展的接口针对第三方的多媒体遍解码器,输入/出设备等等 。
多媒体文件的播放、下载,包括3GPP, MPEG-4,AAC and MP3containers
流媒体文件的下载、实时播放,包括:3GPP, HTTP and RTSP/RTP
动态视频和静态图像的编解码,如:MPEG-4, H.263 and AVC(H.264), JPEG
语音编码格式:AMR-NB and AMR-WB
音乐编码格式:MP3, AAC, AAC+
视频和图像格式:3GP、MPEG-4 and JPEG
视频会议:基于H324-M standard
二、 Media Framework名词解释
1. OpenCore介绍
OpenCore是Android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现。通过Open Core程序员可以方便快速的开发出想要的多媒体应用程序,例如:音视频的采集,回放,视频会议,实时的流媒体播放等等应用。
2. OpenCore代码结构
OpenCore的代码在Android代码的External/Opencore目录中。这个目录是OpenCore的根目录,其中包含的子目录如下所示:
Ø android:这里面是一个上层的库,它实现了一个为Android使用的音视频采集,播放的接口,和DRM数字版权管理的接口实现。
Ø baselibs:包含数据结构和线程安全等内容的底层库
Ø codecs_v2:音视频的编解码器,基于OpenMAX实现
Ø engines:核心部分,多媒体引擎的实现
Ø extern_libs_v2:包含了khronos的OpenMAX的头文件
Ø fileformats:文件格式的解析(parser)工具
Ø nodes:提供一些PVMF的NODE,主要是编解码和文件解析方面的。
Ø oscl:操作系统兼容库
Ø pvmi:输入输出控制的抽象接口
Ø protocols:主要是与网络相关的RTSP、RTP、HTTP等协议的相关内容
Ø pvcommon:pvcommon库文件的Android.mk文件,没有源文件。
Ø pvplayer:pvplayer库文件的Android.mk文件,没有源文件。
Ø pvauthor:pvauthor库文件的Android.mk文件,没有源文件。
Ø tools_v2:编译工具以及一些可注册的模块。
3. OpenMax介绍
Ø OpenMAX是Khronos制定的API,Khronos也是OpenGL的制定者。
Ø OpenMAX是无授权费、跨平台的应用程序接口API,通过媒体加速组件能够在开发、集成和编程环节中实现跨多操作系统和处理器硬件平台,提供全面的流媒体编解码器和应用程序便携化。
Ø 在架构底层上为多媒体codec和数据处理定义了一套统一的编程接口(OpenMAX IL API),对多媒体数据的处理功能进行系统级抽象,为用户屏蔽了底层细节。因此多媒体应用程序和多媒体框架通过 OpenMAX IL可以以一种统一方式来使用codec和其他多媒体数据处理功能