Mplayer移植

Mplayer 移植

运行环境: YCS3C2440 + Linux-2.4.18

1 )编译器最好选择 3.3.2 
解压 3.3.2 到 /usr/local/arm/ 下,并 export PATH=/usr/local/arm/3.3.2/bin:$PATH
echo $PATH 看看 3.3.2 是不是在第一个?

2 ) 播放 mp3 需要禁掉 mp3lib 而使用 madlib
       据说是用 mp3lib 占用 CPU 会很高 .

安装 libmad
( 1 )交叉编译 libmad
下载 libmad 包( libmad-0.15.1b.tar.gz );
打开一个终端,进入 libmad 的目录,输入配置命令:
./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/usr/local/arm/3.3.2/lib CC=arm-linux-gcc
(要保证 arm-linux-gcc 的路径已经有 export 过,否则给出完整路径。)

make
make install

这样就可以看到 /usr/local/arm/3.3.2/lib 目录下多了 include 和 lib 目录,这些就是 libmad相关的库。

 


3 ) 解压 MPlayer-1.0pre7try2.bz2 ,改名为 mplayer ,方便而已在此目录下配置

./configure --cc=arm-linux-gcc --target=arm-armv4-linux --enable-static
--disable-win32 --disable-dvdread --enable-fbdev --disable-mencoder
--disable-live --disable-mp3lib --enable-mad --enable-libavcodec
--with-extraincdir=/usr/local/arm/3.3.2/arm-linux/sys-include/:/usr/local/arm/3.3.2/lib/include
--with-extralibdir=/usr/local/arm/3.3.2/arm-linux/lib:/usr/local/arm/3.3.2/lib/lib
--prefix=/tmp/mplayer --host-cc=gcc

 
4 )make

 
排错:
(1 )/codec-cfg ./etc/codecs.conf > codecs.conf.h
./codec-cfg: 1: Syntax error: word unexpected (expecting ")")
网上有两种解决方法

A 说在configure 时添加 --host-cc=gcc 就可以解决
可是会出现其他库找不到的错误
猜想是指定了库--with-extralibdir 导致的,所以还得采用笨笨的B 方案

B 引用原话“先把 mplayer 编译成x86 的代码,于是重新配置,简单的 ./configure, make ,然后将生成的 codec-cfg codec -cfg.x86 。改名为然后再按跨平台方式配置,编译,等编译器出现错误停止编译时,将codec-cfg.x86 该名为 codec-cfg ,再makeOK, 编译就可以继续进行了。”

(2 )vobsub.c 错误

这个错误可能在 B 方案时就会出现,
解决方法:修改 vobsub.c 230 行将getline 函数名称改为mygetline

 
5 ) make 完毕后拷贝目录下的 mplayer 文件到 arm9linux 文件系统运行就好了

# mplayer -ac mad 1.mp3

#mplayer –ac mad 1.wmv –fs ( fs 是中央显示 )



<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. **优化与问题解决** - **编解码器支持**:若需额外编解码器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值