论文部分内容阅读
免费开源Android操作系统应用平台的诞生,引起了移动互联网应用的重大变革。从2007年Google发布Android以来,至今各种android应用软件、游戏、移动服务已十分的丰富多彩,给广大手机用户的生活带来了许多便捷或精彩的体验。在多媒体方面的应用包括照相机、摄像机、录音机和多媒体播放器等,它们都有着美观易操作的用户界面,具备通用的多媒体数据采集和回放功能;有些还包括多媒体搜索和简单编辑功能。论文主要研究基于android和openGL的多媒体播放器,研究android的多媒体框架(Open Core和StageFright)以及它在音视频编解码方法(FFmpeg解码器的使用),使音视频文件的高质量采集和回放并支持全格式的音视频文件、RTSP/RTP网络流媒体文件。同时开发一个兼音频播放、视频播放和静态图像浏览的多媒体播放器。利用openGL构造3D的视频、图片文件的预览列表,并实现多媒体文件的播放控制和简单编辑功能,包括音视频的播放、暂停、重播、循环、上下一个、快进快退,视频的截频,音视频分离、音视频剪接、字幕制作和歌词同步等。论文研究的创新性工作包括:(1)利用OpenGL构造提供预览的3D视频播放列表;(2)采用FFmpeg音视频解码器对音视频文件进行解码,添加了音视频的分离、剪接,视频截图,字幕编辑和制作等功能;(3)提出了一种基于时间戮的音视频同步算法。算法的原理是给音视频流编码的时候分别打上时间戮,在解码播放前分别提取视频帧和音频流的时间戮,然后把音视频Sample序列输入同步控制系统;同步系统中参考统一的系统时钟,对输入的带有时间戮的音视频Sample进行时钟比较,若音频Sample先到达,则优先输出播放;若视频先到,则等待,延迟输出;若视频Sample后到,则丢弃部分帧或这个视频Sample,并与当前音频Sample同步输出播放;输出音视频Sample后通过反馈机制把当前音视频Sample的到达情况反馈给解码缓冲区,以控制音视频的Sample输入。