sbc-s3c6410的mplayer移植详解。

主机:ubuntu14.04

交叉编译工具链:arm-4.2.2-eabi(其他的也可以,只是在下面配置的时候替换成你的交叉编译工具即可)


在Linux平台的嵌入式设备上,可以使用mplayer播放音视频文件Mplayer,因为mplayer对音频解码默认使用自身的mp3lib,此库支持浮点运算,而armcpu没有支持浮点运算,所以需移植libmad。

第一步:网上下载libmad-0.15.1b.tar.gz和MPlayer-1.0rc2.rar两个文件,并解压;

http://download.chinaunix.net/download.php?id=11891&ResourceID=5910       ---(libmad-0.15.1b.tar.gz)

http://www.mplayerhq.hu/MPlayer/releases/                                                        ---(MPlayer-1.0rc2.tar.bz2)


第二步:进入libmad-0.15.1b:

(1)配置,生成Makefile:(--prefix=/home/mplayer/libmad 为指定最终生成的库文件的安装路径,CC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc为指定交叉编译工具路径)

./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/home/mplayer/libmad CC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc

(2)编译:

make

(3)安装:

make install

这一步的目的是在/home/mplayer下生成libmad目录,在libmad目录下生成include和lib两个文件夹,对应文件夹中生成mad.h和libmad.a和libmad.la文件,这三个文件供mplayer编译用。

------------------------------------------------------------------------------------------------------------------------------------

第三步:进入MPlayer-1.0rc2:

(1)配置,生成Makefile:(extraincdir=/home/mplayer/libmad/include和--with-extralibdir=/home/mplayer/libmad/lib指定了上一步安装库文件在路径)

./configure --cc=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc --target=arm-linux --enable-static --prefix=/home/mplayer/player  --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad --enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6 --with-extraincdir=/home/mplayer/libmad/include --with-extralibdir=/home/mplayer/libmad/lib --host-cc=gcc --enable-ossaudio

-------配置选项解释,详细可以目录下使用 ./configure --help查看

-----host-cc=gcc --cc=arm-linux-gcc --target=arm-linux   //这个不需要解释
--enable-fbdev                           //打开framebuffer支持.ARM开发板必须的
--enable-static                           //静态编译,编译成功后只需要将.bin文件拷走即可以使用
--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解码

--enable-ossaudio                    //调用开发板上的oss格式的音频文件

--language                                //中文支持

(2)编译:

make

(1)errro:armv4l/dsputil_arm_s.S:79: Error: selected processor does not support `pld [r1]'

解决方法:进入 vi libavcodec/armv4l/dsputil_arm_s.S ,在最前面加上

#ifndef HAVE_PLD
.macro pld reg
.endm
#endif

保存,退出

(2)errro:motion_comp_arm_s.S:28: Error: selected processor does not support `pld [r1]'

解决方法:进入vi libmpeg2/motion_comp_arm_s.S,在最前面加上

#ifndef HAVE_PLD
.macro pld reg
.endm
#endif

保存,退出

make最后

当前目录下会生成mplayer.

第四步:将生成的mplayer拷到SD卡中,同时拷备视频文件如*.avi,音频文件如*.mp3,启动机器,挂载SD卡,使用如下命令播放音视频:

./mplayer  *.avi

./mplayer  *.mp3

如果卡可以使用下面命令:

./mplayer –fs –ac mad *.avi

这里-fs表示全屏播放,即电影显示在正中央,周围填充黑色。-acmad表示先尝试使用libmad,其他解码器作为后备。


---------------------------------------------------其他版本可以借鉴参考---------------------------------------------------------

华清远见的技术博客:http://www.embedu.org/Column/Column356.htm

csdn:       http://blog.csdn.net/edai9508/article/details/6589126

--------------------------------------------------------------------------------------------------------------------------------------------

rc4:-lmad  在config.mak  指定库文件路径即可,

安装:修改Makefile , INSTALLSRIP  :=#

在 make install 即可。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值