您的位置:首页 > 其它

MPlayer的移植

2012-04-19 08:08 330 查看
MPayer:

MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流作业系统使用,例如Linux和其他类Unix系统、微软的视窗系统及苹果电脑

的Mac OS X系统。MPlayer是建基于命令行界面,在各作业系统可选择安装不同的图形界面。mplayer的另一个大的特色是广泛的输出设备支持。它可以在X11、

Xv、DGA、OpenGL、SVGAlib、fbdev、AAlib、DirectFB下工作,而且你也能使用GGI和SDL和一些低级的硬件相关的驱动模式(比如Matrox、3Dfx和Radeon、

Mach64、Permedia3)。MPlayer还支持通过硬件MPEG解码卡显示,诸如DVB 和DXR3与Hollywood+。

Mplayer移植:

首先需要知道一点的是因为MPlayer移植后需要mad库播放音频,所以还需要交叉编译libmad。

我们要先获得libmad库,我这里用的是libmad-0.15.1b.tar.gz。首先将其解压。

而后配置文件#./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging

--prefix=/usr/local/arm/usr/local/arm/4.3.1-eabi-armv6/lib(交叉编译工具目录中的库) CC=arm-linux-gcc

#make && make install

就这样,libmad就编译完成了,

接下来的就是MPlayer了,我这里用的是MPlayer-1.0rc2.tar.bz2,首先将其解压

而后配置文件#./configure --prefix=/opt/ARMMPlayer --cc=arm-linux-gcc --host-cc=gcc --target=arm-linux --enable-static --disable-win32dll

--disable-dvdread --enable-fbdev --disable-liba52 --disable-libmpeg2 --disable-mencoder --disable-live --disable-live --disable-mp3lib

--enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6

在这里要做一些裁剪,我在这里说一些简单的项:

--cc 交叉编译工具,如果没添加到环境变量,就要指定完整路径

--target 在pre版本中,对于--target和这个配置参数是这样描述的:

===============================================

--target=arm-armv4l-linux这个参数要注意的是一个分三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本,

这个要注意了,一定要跟libavcodec目录下的平台目录名一致,否则为这个平台的优化代码没办法编译进去(据我观察是这样的);第三部分是系统平台。

===============================================

但是在rc2版本中,只需要--target=arm-linux这样指定就好了。

--enable-static 是设定静态连接,不需要一堆乱七八糟的动态库,尤其对我们这些新手来说省了很多的麻烦。如果设置了这个参数就不用设置--prefix了,

另外也不用执行make install。

--prefix=/tmp/mplayer-rc2

make install后,可执行程序就安装在/tmp/mplayer-rc2目录下。

--disable-win32dll

禁用win32动态链接库支持。在pre版本中该参数为

--disable-dvdread

禁用libdvdread.

--enable-fbdev

支持fbdev,这个一定要选上。

--disable-mp3lib 和 --enable-mad

arm系列的cpu,一般都没浮点运算单元,而mplayer的mp3解码默认使用mp3lib,这个是浮点运算库,在arm上肯定跑不了,

使用ffmp3或者libmad(需要外部库libmad支持)应该就没问题了。所以这里需要禁止掉mencoder和使能libmad。

--disable-mencoder

禁止编码功能。项目上不需要此功能,禁掉以缩小尺寸。而且听说在这里编译mencoder会有问题,听说而已,没试过。

--disable-live

禁止live 555流媒体。(不知道干啥用)

--enable-libavcodec_a

启用静态的libavcodec解码。在pre版本中该参数为--enable-libavcodec。

--disable-armv5te --disable-armv6

禁用armv5te、armv6指令扩展。

--with-extraincdir和-with-extralibdir

指定libmad和mad.h的路径。mad的路径被添加到编译参数-I和-L后面,替换libmad后需要指定。

注:在pre版本中需要指定--host-cc=gcc配置参数。用来编译一些需要在host上执行的中间文件的,如codec-cfg,切记不能缺少。

但在rc2版本中该参数可以省略掉。

最后一步就是编译安装喽#make && make install

就这样交叉编译就哦了,剩下的就是移植了,将刚才生成的库文件可可执行文件通过NFS或者是别的什么方法移植到板上即可.....

本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/838205
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: