Mplayer移植

MPlayer版本:
MPlayer-1.0rc2.tar.bz2
交叉编译器版本:
arm-linux-gcc 4.3.2
操作系统平台:
Linux -- ubuntu11.04
所需源码:
       MPlayer-1.0rc2.tar.bz2
        libmad-0.15.1b.tar.gz 
一 :安装交叉编译工具(略)

二 :译libmad-0.15.1b.tar.gz 
#tar xzvf libmad-0.15.1b.tar.gz
#cd libmad-0.15.1b/
#./configure --prefix=/home/pro/libmad  CC=arm-linux-gcc --host=arm-linux --disable-shared
#make
出现错误:
cc1: error: unrecognized command line option "-fforce-mem"
make[2]: *** [version.lo] 错误 1
解决方法:
  修改makefile,去掉--fforce-mem标志(因为arm-eabi编译器都不支持这个选项)
    #make
    #maek install
            此时会在/home/pro/libmad目录下生成include目录和lib目录。
            其中liclude目录下有文件 mad.h
            lib 目录有文件 libmad.a libmad.la
三 :MPlayer-1.0rc2.tar.bz2
#tar xjvf MPlayer-1.0rc2.tar.bz2
#cd MPlayer-1.0rc2/
#./configure --prefix=/home/pro/mplayer --host-cc=gcc --cc=arm-linux-gcc --target=arm-linux --enable-static --enable-ossaudio --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad --enable-libavcodec_a --disable-armv5te --disable-armv6 --disable-dvdnav --disable-dvdread  --disable-dvdread-internal --with-extraincdir=/home/pro/libmad/include  --with-extralibdir=/home/pro/libmad/lib
选项注释:
--host-cc=gcc --cc=arm-linux-gcc --target=arm-linux //主机编辑器是gcc,交叉编辑环境是arm-linux-gcc 
--enable-fbdev //打开framebuffer支持.ARM开发板必须的 
--enable-static //静态编译,编译成功后只需要将exe文件拷走即可以使用 
--disable-dvdread --disable-dvdnav --disable-dvdread-internal //全部与DVD相关,无视即可 
--disable-libdvdcss-internal //这个不加,低版本mplayer也会出错 
--disable-live //禁止流媒体,我们用不到 
--disable-mp3lib --enable-mad //关闭默认的MP3解码库,使用我们刚才编译的libmad 
--disable-win32dll //禁用win32动态链接库支持 
--disable-mencoder //交叉编译mencoder会有问题,而且arm上不需要这个功能 
--disable-ivtv //如果不加会出现ivtv文件产生的错误  
--enable-libavcodec_a //启用静态的libavcodec解码 
--prefix=
/home/pro/mplayer//安装目录
#make
出现错误:
armv4l/dsputil_arm_s.S:681: Error: selected processor does not support `pld [r1]'
make[1]: *** [armv4l/dsputil_arm_s.o] Error 1
dsputil_arm_s.S error:selected processor does not support 'pld[r1]'
解决方法:
修改MPlayer-1.0rc2/libavcodec/armv4l/dsputil_arm_s.S,在前面添加上:
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
motion_comp_arm_s.S error:selected processor does not support 'pld[r1]'
修改MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S,在前面添加上:
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
#make 
#make install
出现错误:
install: strip process terminated abnormally
make: *** [install-mplayer] 错误 1
解决方法:

查资料看install带-s 参数时会自动调用strip来strip应用程序。但是arm编译时要调用arm-linux-strip才有正确处理。解决办法是取消-s参数,查看Makefile可以发现-s是如下

$(INSTALL) -m 755 $(INSTALLSTRIP) mplayer$(EXESUF)     $(BINDIR)

的INSTALLSTRIP设置的,它默认是-s,因此只要简单在Makefile的前面加入

INSTALLSTRIP :=  #  将其置为空则OK

将其可执行文件下载到板子

执行busybox shell命令fbset查看自n己板的分辩

#./mplayer -vf scale=240:320

It's over!!!
<think>我们正在将MPlayer移植到嵌入式开发板(如全志V3S)。根据引用[1]和引用[2],移植MPlayer的关键步骤包括交叉编译和优化。以下是详细步骤: ### 1. **准备工作** - **获取源码**:下载MPlayer源码(如MPlayer-1.5.tar.xz)[^1]: ```bash wget https://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.5.tar.xz tar xvf MPlayer-1.5.tar.xz cd MPlayer-1.5 ``` - **安装交叉编译工具链**:确保已安装ARM交叉编译器(如`arm-linux-gnueabihf-gcc`): ```bash sudo apt-get install gcc-arm-linux-gnueabihf ``` ### 2. **配置交叉编译环境** - 创建目标目录(用于存放编译结果): ```bash mkdir -p /path/to/target ``` - 配置MPlayer(指定交叉编译器、目标平台和安装路径)[^1]: ```bash ./configure \ --cc=arm-linux-gnueabihf-gcc \ --host-cc=gcc \ --target=arm-linux-gnueabihf \ --prefix=/path/to/target \ --disable-ossaudio \ --disable-sdl \ --disable-gui \ --disable-mencoder \ --disable-vf scale ``` **关键参数说明**: - `--cc`:指定交叉编译器。 - `--host-cc`:指定主机编译器(用于编译在主机上运行的工具)。 - `--target`:目标平台。 - `--prefix`:安装路径。 - `--disable-*`:禁用非必要功能以减少体积(如GUI、mencoder等)。 ### 3. **解决strip问题(引用[2])** - 默认情况下,`make install`会使用`-s`参数调用`strip`,但嵌入式环境需使用交叉编译的strip工具(`arm-linux-strip`)。 - **解决方法**:修改Makefile,将`INSTALLSTRIP`设置为空: ```bash sed -i 's/$(INSTALL) -s/$(INSTALL)/g' Makefile ``` 或手动移除Makefile中的`-s`参数(搜索`$(INSTALL) -s`并删除`-s`)[^2]。 ### 4. **编译与安装** ```bash make -j4 make install ``` - 编译后的可执行文件位于`/path/to/target/bin/mplayer`。 ### 5. **部署到开发板** - 将`mplayer`可执行文件复制到开发板的`/usr/bin`目录。 - 测试播放: ```bash mplayer -vo fbdev2 -zoom -x 480 -y 272 test.mp4 ``` **参数说明**: - `-vo fbdev2`:使用帧缓冲(Framebuffer)作为视频输出(适用于无X11的嵌入式环境)。 - `-zoom -x 480 -y 272`:适配屏幕分辨率(如V3S常见480x272)。 ### 6. **优化与问题解决** - **编解码器支持**:若需额外编解码器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值