MPlayer在ARM2440开发板的移植


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版类似.     MPlayer的简单移植   按照移植规范,libmad在libs目录下,MPlayer本身在项目目录下.   libmad的移植 CC=arm-linux-gcc ./configure  --prefix=$PWD/../../output/arm_linux  --enable-fpm=arm --host=arm-linux  --disable-debugging  --enable-shared --enable-static   修改Makefile 去掉129行 -fforce-mem标志,因为arm-eabi编译器都不支持这个选项,否则将会报错
cc1: error: unrecognized command line option "-fforce-mem"
   make[2]: *** [version.lo] Error 1
   make[2]: Leaving directory `/arm/madplay/libs/libmad-0.15.1b''
   make[1]: *** [all-recursive] Error 1
   make[1]: Leaving directory `/arm/madplay/libs/libmad-0.15.1b''
   make: *** [all] Error 2
    make make install   MPlayer 的移植 0.下载 MPlayer v1.0rc2
http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2   编译环境:    在arm-linux-gcc 3.3.2 +ARM-Linux 2.6.13.     arm-linux-gcc 4.3.2 + ARM-Linux 2.6.29    arm-linux-gcc 4.3.3 + ARM-Linux 2.6.30 均测试通过.   1.生成Makefile  
./configure --prefix=$PWD/../output/arm_linux --cc=arm-linux-gcc  --ar=arm-linux-ar  \
 --ranlib=arm-linux-ranlib --disable-gui   \
--target=arm-armv4-linux --host-cc=gcc  --disable-freetype\
 --enable-fbdev --disable-mencoder --disable-sdl --disable-live  --disable-dvdread \
 --disable-libdvdcss-internal --disable-x11 --enable-cross-compile  --disable-mp3lib \
  --enable-mad  --with-extraincdir="$PWD/../output/arm_linux/include  "  --with-extralibdir="$PWD/../output/arm_linux/lib " \
  --disable-dvdnav  --disable-dvdread-internal    --disable-jpeg --disable-tga \
 --disable-dvbhead --disable-pnm --disable-tv --disable-ivtv \
 --disable-fontconfig --disable-xanim --disable-win32dll --disable-armv5te --disable-armv6
移植注意.  
  • MPlayer不支持常见的--host来修改编译工具前缀.必须用--cc,--ar,--ranlib这样参数来修改.而且交叉编译 --enable-cross-compile 是必须的.
  • --disable-gui   关闭图形界面,只采用字符界面控制
  • --disable-mp3lib是关闭默认的MP3解码库,--enable-mad 是使用libmad支持.
  • --disable-dvbhead --disable-dvdread --disable-dvdnav  --disable-dvdread-internal 都是跟DVD相关库,基本版可以不用安装.
  • --disable-x11 --enable-fbdev  关闭X11视频输出,打开framebuffer支持.ARM开发板必须的.
  • --enable-static 如果使用静态编译尺寸大约是8M,动态编译是6M多,这样可能是无论哪种编译方式,mplayer都把自带的解码库链接到自身,多出2M应该是系统标准库的尺寸。
  • 1
  • 2
  • 3
  • 下一页

相关内容