Mplayer移植到开发板

Mplayer是一款开源的多媒体播放器,自带多种解码库,支持播放多种格式的音视频,但移植它没那么简单。分享一下我的移植心得。

1.

安装libmad

Mplayer虽然自带音频解码库,但那是运行在浮点运算的前提下的,arm架构的cpu不支持浮点运算,libmad是一个开源高精度音频解码哭呀,完全是定点计算
进入libmad官网
http://www.underbit.com/
FTP或SourceForge两下载点
或点此下载
ftp://ftp.mars.org/pub/mpeg/
https://sourceforge.net/projects/mad/files/libmad/
下载 libmad-0.15.1b.tar.gz
1.tar zxvf libmad-0.15.1b.tar.gz
2.cd libmad-0.15.1b
3../configure –enable-fpm=arm –host=arm-linux –disable-shared –disable-debugging –prefix=/usr/local/libmad CC=/opt/crosstool/4.6.3/bin/arm-sice-linux-gnueabi-gcc
4.make
5.make install

make出错

error: unrecognized command line option “-fforce-mem”
这里写图片描述
修改Makefile
在Makefile中找到包含”-fforce-mem”字符串,将其删除即可;原因:gcc3.4或更高版本中,已将将该选项去除了。
再make make install

生成的库和头文件待会编译Mplayer要用到

2.编译安装Mplayer

下载MPlayer-1.0rc2.tar.bz2
官网http://www.mplayerhq.hu/design7/dload.html
最新版1.3或点old release下载旧版
http://www.mplayerhq.hu/MPlayer/releases/ 下载

1.tar jxvf MPlayer-1.0rc2.tar.bz2
2.cd MPlayer-1.0rc2
3.根据需求配置Mplayer,我这里写了个配置脚本
./mkplayer.sh

#!/bin/sh
./configure \
    --cc=/opt/crosstool/4.6.3/bin/arm-sice-linux-gnueabi-gcc \   #指定自己的交叉编译器
    --host-cc=gcc \
    --target=arm-linux \
    --enable-static \                                            #静态编译
    --prefix=/usr/local/Mplayer \                                #安装路径
    --disable-win32dll \                                         #禁用win32动态链接库支持
    --disable-dvdread \                                          #禁用DVD
    --enable-fbdev \                                             #启用开发板的帧缓冲设备
    --disable-png \                                              #某部分人不加make时会报错
    --disable-mencoder \                                         #不用mencoder转码
    --disable-live \                                             #禁用流媒体
    --disable-mp3lib \                                           #禁用自带的mp3lib音频解码库
    --disable-ivtv \                                             #禁用ivtv文件
    --enable-mad \                                               #使用刚编译的mad库
    --enable-libavcodec_a \                                      #启用静态的libavcodec解码  
    --language=zh_CN \                                           #中文
    --disable-armv5te \                                          #禁用armv5te、armv6指令扩展
    --disable-armv6 \
    --with-extraincdir=/usr/local/libmad/include \               #添加刚编译的mad库头文件位置
    --with-extralibdir=/usr/local/libmad/lib \                   #添加刚编译的mad库库文件位置
    --enable-ossaudio                                            #使能ossaudio

4.make -j4 (电脑多少核就用几个线程)

出现的错误

1.
error: ‘Z_NO_COMPRESSION’ undeclared here (not in a function)
这里写图片描述
解决办法:
配置添加–disable-png选项再make

2.
这里写图片描述
解决:

3.
Error: selected processor does not support ARM mode `pld [r1]
这里写图片描述
解决:参考 http://blog.csdn.net/xiaoaid01/article/details/19539391
预读取PLD指令
功能:cache预读取(PLD,PreLoad),使用PLD指示存储系统从后面几条指令所指定的存储器地址读取,存储系统可使用这种方法加速以后的存储器访问。
解决方法:修改MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S和MPlayer-1.0rc2 /libavcodec/armv4l/dsputil_arm_s.S这两个报错文件,在前面添加上:

#ifndef HAVE_PLD  
.macro pld reg
.endm
#endif

然后再make

5.make install
好不容易编译完,但安装依然出错
1.
install: strip process terminated abnormally
make: * [install-mplayer] 错误 1
这里写图片描述
参考:http://blog.sina.com.cn/s/blog_662254530100z81x.html
install带-s 参数时会自动调用strip来strip应用程序。但是arm编译时要调用arm-linux-strip才有正确处理。
解决办法是取消-s参数
将config.mak中 INSTALLSTRIP=-s,-s去掉即可,重新make,make install
最终在目标文件生成mplayer可执行文件

把它下载到开发板测试
./mplayer -fs -zoom -x 800 -y 480 *.mp4 (或别的格式音视频文件)

-fs 视频图像居中
-zoom -x 800 -y 480 设置大小(具体按自己的开发板LCD分辨率设置)
插上耳机就能享受音视频了。
至此,移植完成

转发请注明出处

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值