引 言
嵌入式系统是以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应于应用系统的功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。我们将MPlayer移植到嵌入式系统中,是因为MPlayer播放器是Linux下最优秀的多媒体播放器之一,它的播放速度最快,支持的文件格式也最多。随着技术的不断进步,媒体播放器已越来越多,选择一款多功能播放器,实在不容易。MPlayer就是个好的媒体播放器,资源占用率极低,支持格式极广,输出设备支持极多,所以值得移植到嵌入式系统中。
配置与编译安装MPlayer
MPlayer是Linux上的电影播放器,它的功能十分强大,能够播放众多格式的文件,在X86 PC机上运行很稳定,也可以把它移植到非X86 CPU上的嵌入式系统中来。我们就
是将MPlayer软件移植到ARM9开发板中,让MPlayer运行在ARM核上。MPlayer能使用众多本地的、Xanim、RealPlayer和Win32 DLL编解码器,播放大多数MPEG、VOB、AVI、OGG、VIVO、ASF/WMV、QT/MOV、FLI、RM、NuppelVideo、yuv4mpeg、FILM、RoQ文件。
借助于MPlayer你能观看VideoCD、SVCD、DVD、3ivx、RealMedia和DivX格式的电影。MPlayer的另一个大的特色是支持广泛的输出设备,它可以在X11、Xv、DGA、OpenGL、SVGAlib、fbdev、Aalib、DirectFB下工作,而且你也能使用GGI和SDL(由此使用它们支持的各种驱动模式) 和一些低级的硬件相关的驱动模式。这个播放器能很稳定地播放被破坏的MPEG文件,并且它能播放Windows media player 都打不开的有损坏的AVI文件,甚至,没有索引部分的AVI文件也可以播放。
MEncoder的使用
MPlayer采用的编解码器包是libavcodec,这个编解码器包可以在多种平台上对H263/MPES/RV10/ DivX4/DivX5/MP41/MP42/WMV1编码格式的视频流进行解码,它同时也是已知完成这些任务最快的解码器。MEncoder(MPlayer电影解码器)可以生成MPEG(MPEG-PS)格式的输出文件。它们只能用于libav codec的mpeg1video编解码器,因为一般播放器(除了MPlayer) 认为MPEG文件中包含的是MPEG1视频流和MPEG1 layer 2(MP2)音频流。要改变MEncoder的输出文件格式,可以使用-of mpeg选项。例如: mencoder -of mpeg -ovc lavc -lavcopts vcodec-mpeg1video -oac copy
media.avi -o output.mpg。
MEncoder能用两种方式处理输入流:编码和复制
a.视频流(-ovc copy选项):MEncoder可以把FLI或者VIVO或者MPEG1的视频放到AVI文件中;还可以将视频流复制用于只有音频流需要被编码的情况。
b.音频流(-oac copy选项): 可以把一个外部音频文件(MP3,Vorbis)传到输出流中。使用-audiofile 选择来实现这个功能。
MEncoder可以修复交错损坏的AVI文件,我们可以简单地复制视频和音频流,并用MEncoder产生索引。命令为:mencoder -idx input.avi -ovc copy -oac copy -o output.avi。MEncoder还可以用来修复两个或多个AVI文件并将其合并成一个文件。