MPlayer移植到tq2440开发板


开发板:tq2440

arm-linux-gcc交叉编译器:gcc version 4.3.3(Sourcery G++ Lite 2008q3-72)

MPlayer版本:

MPlayer-1.0rc2.tar.bz2

准备源码包:

MPlayer-1.0rc2.tar.bz2         libmad-0.15.1b.tar.gz

MPlayer 1.0已经把大部分解码库都自带了,如ffmpeg,但是自带的音频库在S32440下效果非常不好.换成使用libmad效果不错.因此MPlayer 在ARM-Linux的最简单的移植只需要移植这两个即可.移植后即进行字符界面的播放.ARM的版本由我学生程磊最早运行成功.

但完整版本需要如下库.

如果需要字幕支持.需要移植freetype库.支持JPG皮肤需要 libjpeg库,打开DVD光盘格式,需要dvdread,dvdnav等,支持pnm库需要libpnm

MPlayer的皮肤主要采用X11支持.但移植X11需要大量工作.这一部分程序由我的学生童军实现,已经在S3C2440开发板上看皮肤的效果.

MPlayer也支持SDL,但是实测好象其实现并不支持皮肤显示.一般将其关掉.

ARM版同样可以加入live555支持,支持远程的RTSP的流媒体播放器,方法同X86版类似.

源码拷贝到/opt/EmbesdSky/video 并分别解压

MPlayer的简单移植

1.    编译 libmad

首先配置 configure 文件(事实证明,每次configure之前看一下./configure --help是个好习惯)
*************************************************************************************************************************************
        #./configure CC=arm-linux-gcc --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/opt/EmbestSky/video/MPlayer-1.0rc2 

2.make

完成之后会出现错误,找到Makefile并删除“--fforce-mem”就OK了, 原因是gcc 4.4.3已经将其去除了,所以会出现上面的错误

3.make install

编译安装MPlayer  

1.下载MPlayer-1.0rc

2.tar.gz解压到/opt/Embesdsky中。

3.首先配置 configure 文件

关键就是后面的配置参数了。rc2版本的配置参数相比pre版本而言有些微的改变

**************************************************************************************************
        #./configure  --enable-cross-compile --host-cc=gcc --cc=arm-linux-gcc --as=arm-linux-as --ar=arm-linux-ar --ranlib=arm-linux-ranlib --target=arm-linux --enable-static--prefix=/home/lyh/mplayer-make/MPlayer --disable-dvdread  --disable-win32dll--enable-fbdev --disable-mencoder --disable-live --disable-mp3lib--enable-mad --enable-libavcodec_a--language=zh_CN,en --disable-armv5te --disable-armv6--with-extraincdir=/home/lyh/mplayer-make/mplayer/include--with-extralibdir=/home/lyh/mplayer-make/mplayer/lib


     ./configure  --prefix=/mywork/mplayer --disable-mencoder --enable-linux-devfs --disable-iconv --enable-network --disable-live  --disable-dvdnav --disable-dvdread --disable-dvdread-internal --disable-libdvdcss-internal --enable-ftp  --enable-libavcodec_a  --enable-libavcodec_mpegaudio_hp --enable-mad --disable-mp3lib –disable-ivtv --enable-fbdev --enable-ossaudio --enable-cross-compile --cc=arm-linux-gcc --host-cc=gcc --target=arm-linux --enable-static --with-extraincdir=/mywork/libmab/mad/include --with-extralibdir=/mywork/libmab/mad/lib 2>&1 |tee logfile

注意:如果不加–disable-ivtv会出现ivtv文件产生的错误。

MPlayer不支持常见的--host来修改编译工具前缀.必须用--cc,--ar,--ranlib这样参数来修改.

--disable-mp3lib是关闭默认的MP3解码库,--enable-mad 是使用libmad支持.

--disable-dvbhead --disable-dvdread --disable-dvdnav  --disable-dvdread-internal 都是跟DVD相关库

--enable-fbdev  打开framebuffer支持.ARM开发板必须的.

--enable-static 如果使用静态编译尺寸大约是8M,动态编译是6M多,这样可能是无论哪种编译方式,mplayer都把自带的解码库链接到自身,多出2M应该是系统标准库的尺寸。

--enable-static 设置静态连接

--disable-mencoder 禁止编码功能

--disable-live 禁止live 555流媒体(我也不知道是什么玩意儿。。。)

--enable-libavcodec_a 启用静态的libavcodec解码

  • 1
  • 2
  • 下一页

相关内容