Mplayer移植-在arm开发板上移植音频播放

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/zsb目录下(这个可以随意)

Libmad库配置

① 创建文件夹 mplayermove
命令:

mkdir mplayermove

在这里插入图片描述

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

命令:cd mplayermove/

在这里插入图片描述

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

在这里插入图片描述

解压过程

image.png

image.png

④ 解压压缩包MPlayer-1.0rc4.tar
命令:tar xzvf MPlayer-1.0rc4.tar

image.png

解压过程
在这里插入图片描述
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/zsb/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/zsb/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/zsb/mplayermove/mplayer>&1 | tee logfile
在这里插入图片描述

ls 查看MPlayer-1.0rc4 文件夹下是否存在config.mak
在这里插入图片描述

⑪ vim打开config.mak文件,进入行末模式,搜索(:g/-lmad)
在这里插入图片描述

按下回车,光标将移动到搜索的当前行
在这里插入图片描述

⑫ 编译libmad库是我们生成文件夹lib下的库函数是需要使用的,但是在配置这一点并没有被修改,所以我们要将该路径指出来。
在此行的末尾添加 libmad库的lib的路径,进入插入模式,我的路径为(/home/zsb/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 ( I N S T A L L S T R I P ) m p l a y e r (INSTALLSTRIP) mplayer (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复制到samba服务文件共享的文件夹中,测试文件mp3,或者mp4的文件与mplayer放入同一级目录下,传到共享文件夹中。
现将ubuntu的ip和widows的ip弄成同一网段,然后连接
在这里插入图片描述

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

配置IP(IP需要和 虚拟机IP在一个网端上即可,子网掩码相同)
④然后打开tftpd32.exe,把mplayer和mp3文件和tftpd32.exe放在同一个文件夹下,往板子上传输,
使用命令 :
mplayer 和 1.mp3均为要传输的文件
10.10.10.1为电脑ip

tftp -g -l mplayer 10.10.10.1
tftp -g -l 1.mp3 10.10.10.1

使用chmod命令更改mplayer权限

chmod 777 mplayer

运行MP3文件
在这里插入图片描述
运行界面如下:在这里插入图片描述
到这一步,您的mplayer已经移植成功了,这时候就可以在开发版上面插上耳机听音乐了。

移植的大体步骤:
① 解压所需的库文件压缩包
② 配置环境
③ 运行 configure生成Makefile
④ 修改Makefile
⑤ make和make install

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值