前言
mplayer想要播放带音频的视频文件,需要依赖alsa-lib和zlib,所以交叉编译mplayer前还需要先编译alsa-lib和zlib
一、alsa-lib
alsa-lib 是 ALSA 提供的一套 Linux 下的 C 语言函数库,需要将 alsa-lib 移植到板卡上,这样基于 alsa-lib 编写的应用程序才能成功运行
如果想不用mplayer,直接使用alsa测试音频,还需要移植 alsa-utils,alsa-utils 包含了一些用于测试、配置声卡的工具,譬如 aplay、arecord、alsactl、alsaloop、alsamixer、amixer 等,在开发板出厂系统上可以直接使用这些工具,这些应用程序也都是基于 alsa-lib 编写的。
aplay 是一个用于测试音频播放功能程序,可以使用 aplay 播放 wav 格式的音频文件,需要注意的是,aplay 工具只能解析 wav 格式音频文件,不支持 mp3 格式解码
alsamixer 是一个很重要的工具,用于配置声卡的混音器,它是一个字符图形化的配置工具
1、下载源码
下载链接:
AlsaProject (alsa-project.org)
Advanced Linux Sound Architecture (ALSA) project · GitHub
选用版本:1.2.2
2、linux下解压
tar -vxjf alsa-lib-1.2.2.tar.bz2
3、config
注意 alsa-lib 编译过程中会生成一些配置文件,而这些配置信息的路径都是绝对路径,因此为了保证 ubuntu 和开发板根文件系统中的路径一致!需要在 ubuntu 和开发板中各创建一个路径和名字完全一样的目录。路径为 /usr/app_install/common/lib/alsa
./configure --host=arm-linux-gnueabihf --prefix=/home/wwyc/srv/winShared/lib-install/alsa --with-configdir=/usr/app_install/common/lib/alsa
--prefix:安装目录
--with-configdir:配置文件目录
3、编译安装
make
sudo make install //因为配置文件会生成到/usr目录下,所以需要root权限
4、遇到问题
解决办法:
二、alsa-utils(可选)
1、下载源码
下载链接:
AlsaProject (alsa-project.org)
Advanced Linux Sound Architecture (ALSA) project · GitHub
选用版本:1.2.2
2、linux下解压
tar -vxjf alsa-utils-1.2.2.tar.bz2
3、config
./configure --host=arm-linux-gnueabihf --prefix=/home/wwyc/srv/winShared/lib-install/alsa-utils --with-alsa-inc-prefix=/home/wwyc/srv/winShared/lib-install/alsa/include/ --with-alsa-prefix=/home/wwyc/srv/winShared/lib-install/alsa/lib/ --disable-alsamixer --disable-xmlto
--prefix:安装目录
--with-alsa-inc-prefix:alsa头文件路径
--with-alsa-prefix:alsa库路径
--disable-alsamixer:禁止编译alsamixer工具
4、编译安装
make
sudo make install
5、遇到问题
configure: error: No linkable libasound was found.
解决办法:
config前先导出先环境变量, source /etc/profile
三、zlib
1、下载源码
下载链接:zlib Home Site
选用版本:1.2.11
2、linux下解压
tar -vxzf zlib-1.2.11.tar.gz
3、config
CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld AD=arm-linux-gnueabihf-as ./configure --prefix=/home/wwyc/srv/winShared/lib-install/zlib
4、编译安装
make
make install
完成后会在安装目录下生成如下文件
四、mplayer
1、下载源码
下载链接:Index of /MPlayer/releases
选用版本:1.4
2、linux下解压
tar -vxzf MPlayer-1.4.tar.gz
3、config
./configure --cc=arm-linux-gnueabihf-gcc --host-cc=gcc --target=arm-linux-gnueabihf --disable-ossaudio --enable-alsa --prefix=/home/wwyc/srv/winShared/lib-install/mplayer --extra-cflags="-I /home/wwyc/srv/winShared/lib-install/zlib/include -I /home/wwyc/srv/winShared/lib-install/alsa/include" --extra-ldflags="-L/home/wwyc/srv/winShared/lib-install/zlib/lib -Iz -L/home/wwyc/srv/winShared/lib-install/alsa/lib -lasound" --enable-fbdev --disable-mencoder
--extra-cflags:指定 zlib 和 alsa-lib 的头文件路径
--extra-ldflags:指定 zlib 和 alsa-lib 的库文件路径
配置完成以后打开 config.mak 文件,找到“INSTALLSTRIP = -s”这一行,取消掉后面的“-s”,否则“make install”命令会失败!
4、编译安装
make
make install
完成后会在安装目录下的bin目录下生成 mplayer 工具
五、移植到ARM
1、将alsa-lib编译生成的lib库和配置文件 全部拷贝到板卡/usr/lib 路径下,注意软连接,需要生成tar包拷贝到设备后再解压缩
2、将alsa-utils编译生成的bin目录下二进制工具拷贝到板卡 /usr/bin 路径下,使用aplay可以直接播放 wav格式的音频文件。
3、将 mplayer 编译生成的bin程序拷贝到板卡/usr/bin 路径下,使用mplayer就可播放带音频的视频文件了