MPlayer移植步骤

Mplayer移植

目录

Mplayer移植

前期准备:

中期执行:

测试:

后期总结


前期准备:

1、软件:MPlayer-1.0rc4.tar libmad-0.15.1b.tar

2、环境:Linux虚拟机下,配置交叉编译器,nfs服务,xshell(或者 超级终端),串口驱动(PL2303.。。)

3、硬件:虚拟机下Linux系统,USB转串口线,ARM开发板


中期执行:

1、将MPlayer-1.0rc4.tar libmad-0.15.1b.tar放入新创建的mplayermove文件夹下(此文件夹为mplayer移植的总文件夹),

我将mplayermove文件夹创建在了/home/ryh目录下(这个可以随意)

Libmad库配置

① 创建文件夹 mplayermove

命令:mkdir mplayermove

② 进入mplayermove文件夹下,将MPlayer-1.0rc4.tar libmad-0.15.1b.tar两个文件放入mplayermove文件夹下

命令:cd mplayermove/

       ls

③ 解压压缩包libmad-0.15.1b.tar 解压到当前文件夹

命令:tar xzvf libmad-0.15.1b.tar

解压过程

④ 解压压缩包MPlayer-1.0rc4.tar

命令:tar xzvf MPlayer-1.0rc4.tar

解压过程

ls查看解压后的文件

⑤ 在mplayermove文件夹下创建文件夹mplayer和libmad (在后面的配置中要将一些文件放入这两个文件夹中。)用于存放lib库和Mplayer应用文件

命令:ls

       Mkdir mplayer

       Mkdir libmad

       ls

⑥ 对libmad库进行一些配置,进入libmad-0.15.1b目录下./configure 进行剪裁(将一些不需要的功能减掉)其中,--prefix表示make install 之后生成的文件存放的路径(路径是绝对路径)

./configure CC=arm-linux-gcc --host=arm-linux --disable-shared --disable-debugging --prefix=/home/ryh/mplayermove/libmad

查看libmad-0.15.1b文件下的Makefile进行(在上一步未执行时,次Makefile一般不会出现,因此必须执行完上一步,才能执行这一步。)

⑦ 输入命令make ,会出现错误信息。

对错误信息进行调试,修改:

⑧ Vim 编译器进入Makefile文件中

进入行末模式,输入搜索命令(:g/-fforce-mem)按下回车,光标会指示此处,

 

进入插入模式,将其删除,wq保存退出。

删除后

再次make 编译

编译后的最终结果,无错误出现,编译通过

⑨ 运行安装  make install

运行最终结果,无错误出现

查看 home/ryh/mplayermove/libmad目录,已成功生成include lib 两个文件


Mplayer应用软件

⑩ 进入MPlayer-1.0rc4 文件下

./configure 对MPlayer-1.0rc4 进行剪裁(将一些不需要的文件关闭),其中  --prefix表示后面运行的文件生成的路径我将其放入 /home/ryh/mplayermove/mplayer目录下(生成的文件有:bin、etc、lib、share)

命令:./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-linux --enable-fbdev --enable-static --disable-dvdread --disable-live --disable-mp3lib --enable-mad --disable-win32dll --disable-mencoder --disable-ivtv --disable-dvdnav --disable-dvdread-internal --disable-libdvdcss-internal --enable-libavcodec_a --prefix=/home/ryh/mplayermove/mplayer>&1 | tee logfile

ls 查看MPlayer-1.0rc4 文件夹下是否存在config.mak

⑪ vim打开config.mak文件,进入行末模式,搜索(:g/-lmad)

 

按下回车,光标将移动到搜索的当前行

编译libmad库是我们生成文件夹lib下的库函数是需要使用的,但是在配置这一点并没有被修改,所以我们要将该路径指出来。

在此行的末尾添加 libmad库的lib的路径,进入插入模式,我的路径为(/home/ryh/mplayermove/libmad/lib目录下

添加内容:-L/home/ryh/mplayermove/libmad/lib

此配置是和前面产生的libmad库的lib路径相对的

⑬ Vim 进入 /MPlayer-1.0rc4/libmpeg2/motion_comp_arm_s.S文件

在文件的开头添加内容如下:

#ifndef HAVE_PLD

.macro pld reg

.endm

#endif

查看MPlayer-1.0rc4目录下,是否存在Makefile文件

Vim 进入Makefile文件,

查资料看install带-s 参数时会自动调用strip来strip应用程序。但是arm编译时要调用arm-linux-strip才有正确处理。解决办法是取消-s参数,查看Makefile可以发现-s是如下 
$(INSTALL) -m 755 $(INSTALLSTRIP) mplayer$(EXESUF)     $(BINDIR) 
的INSTALLSTRIP设置的,它默认是-s,因此只要简单在Makefile的install部分前面加入: 
INSTALLSTRIP :=  #将其置为空即可

 

进入行末模式,搜索命令(:g/INSTALLSTRIP)

按下回车,光标会出现在搜索目标的当前行

在install部分的开始前面加上:INSTALLSTRIP:= #  ,加入后保存退出(命令:wq)

⑮ 执行:make 编译

make install运行安装

安装成功,在mplayer目录下存在四个文件夹,分别为:bin、etc、lib、share

进入 mplayer的bin目录中,存在mplayer可执行文件(最终得到的结果)

移植成功


 

测试:

将生成的可执行文件mplayer复制到nfs文件共享的文件夹中,测试文件mp3,或者mp4的文件与mplayer放入同一级目录下

虚拟机IP为:

在xshell上运行(Xshell与PC机串口相连,网络相通)

(网络相通的方法:1、将一根网线一段插入PC机网口,一段插入开发板网口;2、将两根网线连接于一个交换机上,两根网线的另一端,一个插入PC机,另一个插入开发板)

配置IP(IP需要和 虚拟机IP在一个网端上即10.25.100.*** 子网掩码相同)

挂载的IP为PC机虚拟机的IP,nfsroot为nfs服务开启时设定的共享文件夹,mnt为开发板对应的文件夹(UPTECH开发板的耳机插孔在 屏幕右边红色圆插孔

运行MP3 文件

运行界面如下:

运行MP4 文件 -zoom为调整画面使其全屏

 

运行界面如下


后期总结:

编译libmad库是我们生成文件夹lib下的库函数是需要使用的,但是在配置这一点并没有被修改,所以我们要将该路径指出来。

在此行的末尾添加 libmad库的lib的路径,进入插入模式,我的路径为(/home/ryh/mplayermove/libmad/lib目录下。

错误:

在这一步时,因为没有将lib库的路径添加正确,导致make是出现错误

解决办法:将lib库的绝对路径添加正确,仔细检查lib库的绝对路径

Mplayer 是自带mp3lib库来进行MP3解码的,但是arm系列的cpu,一般都没浮点运算单元,而mplayer 的MP3解码默认使用MP3lib 这个是浮点运算库,arm上面运行不了,因此需要libmad库,作为mplayer的前提依赖。

移植的大体步骤:

① 解压所需的库文件压缩包

② 配置环境

③ 运行 configure生成Makefile

④ 修改Makefile

⑤ make和make install

 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值