周立功单片机_从51单片机到Linux MPlayer万能播放器(教程17)

ff397efd8ef69e97d39dcaa716737e79.png

大家好,我是兔子。

是一个嵌入式软硬件工程师。

正在从单片机开发转岗Linux开发。

上一个教程,兔子我使用的是ALSA功能,通过ALSA的一个小测试工具aplay。播放.wav格式的音乐。

但是目前大部分音乐都是MP3格式的。怎么办?

这时兔子的Linux群里有一个朋友在搞MPlayer的视频播放功能。

这倒提醒了兔子我,于是去查了一下,发现MPlayer是一个很强大的播放器,可以播放各种格式的音频及视频。

正好,兔子我就单独编译一下MPlayer。将其移植到周立功的i.MX287板卡及Firefly-rk3288两款板卡上。

这里,就写兔子我在周立功的i.MX287板卡上的移植过程。

1.什么是MPlayer

ec96fcec3360c4d69a6a1cccec0f9cfb.png

MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流操作系统使用,例如Linux和其他类Unix系统、Windows及Mac OS X系统。

MPlayer的开发始于2000年。最初的作者是 Arpad Gereoffy。MPlayer最初的名字叫"MPlayer - The Movie Player for Linux",不过后来开发者们简称其为"MPlayer - The Movie Player",原因是MPlayer已经不仅可以用于Linux而可以在所有平台上运行。

2. MPlayer安装准备

和兔子一起,去MPlayer的官网上下载安装包MPlayer-1.0rc2.tar.bz2

http://www.mplayerhq.hu/MPlayer/releases/

322f50f0058d7d09d12c1fb80b150646.png

这是一个老版本的MPlayer。

兔子我也尝试着移植最新的MPlayer,可惜没有成功。就先用这个版本的MPlayer。

同时,还需要用到的alsa-lib-1.0.22。为MPlayer提供音频功能。

PS:上个教程(教程16),用到的是alsa-lib-1.1.9的最新版本。这里是无法正常使用的,必须使用老版本的alsa,即alsa-lib-1.0.22。因为老版本的MPlayer-1.0rc2无法兼容新版本的alsa。

可以从官网上下载:ftp://ftp.alsa-project.org/pub/lib/

3f95d290639c76a9affe77e908e26505.png

两个文件下载好后,上传到虚拟机的~/XW_Linux/ZLG/mplayer目录下。并解压。这个路径是兔子我自己在~/目录下新建的路径,也可以更换为其他路径)

解压,输入命令

tar -jxvf alsa-lib-1.0.22.tar.bz2

tar –jxvf MPlayer-1.0rc2.tar.bz2

可以看到,两个文件已经解压好了。

075085920dbca901c60cfd8b1619e3ba.png

3.MPlayer移植步骤

1)编译alsa-lib

先输入指令

cd alsa-lib-1.0.22

进入alsa-lib-1.0.22文件夹里。

输入alsa库的编译配置

CC=arm-fsl-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/home/xuw/XW_Linux/ZLG/mplayer/alsa

bf60132c837514a2b7b22267ad43aa89.png

<1> CC=arm-fsl-linux-gnueabi-gcc表示指定的编译工具为arm-fsl-linux-gnueabi-gcc

<2> prefix=/home/xuw/XW_Linux/ZLG/mplayer/alsa 表示最终编译生成及库调用的路径为/home/xuw/XW_Linux/ZLG/mplayer/alsa

不同虚拟机,路径会有所不同,需要根据实际情况调整。

(兔子我的 ~/ 路径为/home/xuw)

等待一会,可以看到无错误。表示配置通过。

a309f72c7d2b2234bda00764393f8746.png

输入make指令,等待编译通过后。

如果无错误,

再输入sudo make install 安装最终生成的文件。

这时,可以在/home/xuw/XW_Linux/ZLG/mplayer目录下,看到新生成的文件夹alsa

表示alsa-lib安装成功。

7f8ea75acab3edb2eb2ab6fe4c8ee4b3.png

2)编译MPlayer-1.0rc2

cd MPlayer-1.0rc2

进入MPlayer-1.0rc2文件夹里。

输入MPlayer-1.0rc2的编译配置

./configure --cc=arm-fsl-linux-gnueabi-gcc --target=arm-linux --prefix=/home/xuw/XW_Linux/ZLG/mplayer/player --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --enable-mp3lib --disable-mad --enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6 --host-cc=gcc --disable-ivtv --enable-alsa --disable-ossaudio --with-extraincdir=/home/xuw/XW_Linux/ZLG/mplayer/alsa/include --with-extralibdir=/home/xuw/XW_Linux/ZLG/mplayer/alsa/lib

说明

<1> --prefix指定了MPlayer-1.0rc2最终编译生成的目录

为/home/xuw/XW_Linux/ZLG/mplayer/player

<2> --disable

表示将该功能不编译进播放器里

<3> --enable

表示将该功能编译进播放器里

<4> --with-extraincdir

表示连接额外的库的头文件目录,这里是需要引用alsa-lib-1.0.22编译出来的头文件

<5> -- with-extralibdir

表示连接额外的库文件目录,这里是需要引用alsa-lib-1.0.22编译出来的库文件

等待一会,看到无错误,表示配置通过。

cd9467ce49cdc25e3beac556b3190f67.png

且能看到ALSA功能已经正确加载。

f93e4c87091eb1da0cecab3546e94b90.png

输入make指令,等待编译通过后。

(也可以输入make –j4,表示4线程编译,编译速度会快一点)

如果无错误

再输入make install 安装最终生成的文件。

这时,兔子make install 出现错误。

cdbc964876ad8cdef4ff3d139012e389.png

在网上搜索了一番,说不要紧。

最终的可执行文件已经在MPlayer-1.0rc2目录下生成了。

可以看到,编译通过的可执行文件mplayer。

大小大约为7.8M。

5edfd667b94bf1fd86d29e056b430918.png

至此,MPlayer已经编译通过。

将生成的可执行文件mplayer拷贝到开发板上。

(如果不清楚如何拷贝,可以移步教程3)

兔子MCU:从51单片机到Linux 开发板传文件利器-NFS(教程3)​zhuanlan.zhihu.com
677efb34ca25f301fc23ca53a8674caf.png

4.测试验证

<1> 插上耳机。

<2> 给开发板上传一个.mp3格式的音乐及一个.avi格式的视频。

5f5b264bd6b86d5f761febc740de463b.png

<3>输入./mplayer 01.mp3命令,开始欣赏音乐

音乐播放的同时,也在显示音乐播放的进度。

如果想停止播放。可以输入q来退出。

9e2e0bdc2828944eb4781b52f815a706.png

<4>播放视频

./mplayer VID_20190612_205816.avi –fs

-fs表示为全屏居中播放

由于视频兔子我使用软件压缩了一下,播放起来还比较流畅,虽然软件觉得我的CPU性能差。

e13b72c53082fb25f0c87742a9417804.png

f1dde7189ec82977a0b13eceb3601088.png

5.MP3欣赏

0a57edcbc1d6d3e7d77c9cc64840f452.png
开发板播放MP3音乐https://www.zhihu.com/video/1144758140540239872

6.视频播放

976d00c8487fda64a69ae654a3601052.png
开发板播放AVI视频https://www.zhihu.com/video/1144758395323117568

f62cab8b9c2812c1f223b0dd764adf09.png

44a5735692229a69be147c1b0a691e41.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值