前言

  在ubuntu上arm交叉编译MPlayer播放器,并部署到开发板播放音乐。

 

Demo

  

  

  
  
  

 

Mplayer

  MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流操作系统使用,例如Linux和其他类Unix系统、Windows及Mac OS X系统。
  MPlayer基于命令行界面,在各操作系统也可选择安装不同的图形界面。mplayer的另一个大的特色是广泛的输出设备支持。它可以在X11、Xv、DGA、OpenGL、SVGAlib、fbdev、AAlib、DirectFB下工作,且能使用GGI和SDL和一些低级的硬件相关的驱动模式(比如Matrox、3Dfx和Radeon、Mach64、Permedia3)。MPlayer还支持通过硬件MPEG解码卡显示,如DVB 和DXR3与Hollywood+。
  MPlayer的开发始于2000年。最初的作者是 Arpad Gereoffy。MPlayer最初的名字叫"MPlayer - The Movie Player for Linux",不过后来开发者们简称其为"MPlayer - The Movie Player",原因是MPlayer已经不仅可以用于Linux而可以在所有平台上运行。

下载

  最新源码下载地址: http://mplayerhq.hu/design7/news-archive.html
  QQ群:1047134658(点击“文件”搜索“MPlayer”,群内与博文同步更新)

 

Ubuntu交叉编译Mplayer

步骤一:下载解压

tar xvf MPlayer-1.4.tar.xz

  

步骤二:configure

cd MPlayer-1.4/
./configure \
--prefix=/home/yang/work/rootfs/mplayer \
--host-cc=gcc \
--cc=arm-linux-gnueabihf-9.1.0-gcc \
--yasm=''

  

步骤三:make,“error impossible constraint in asm”

make -j4

  
  此处,是因为平台的指令集问题,添加平台参数

./configure \
--prefix=/home/yang/work/rootfs/mplayer \
--host-cc=gcc \
--cc=arm-linux-gnueabihf-9.1.0-gcc \
--yasm='' \
--target=arm-linux

  

步骤四:make,需要zlib库支撑,引入zlib库

make

  
  zlib库的交叉编译请参照博文《zlib开发笔记(三):zlib库介绍、在ubuntu上进行arm平台交叉编译
  添加交叉编译的zlib库后,添加路径后重新配置:

./configure \
--prefix=/home/yang/work/rootfs/mplayer \
--host-cc=gcc \
--cc=arm-linux-gnueabihf-9.1.0-gcc \
--yasm='' \
--target=arm-linux \
--extra-cflags=-I/home/yang/work/rootfs/zlib-1.2.11/include \
--extra-ldflags=-L/home/yang/work/rootfs/zlib-1.2.11/lib

  继续make,直至编译完成
  

步骤五:宿主机查看

  直接看mplayer就好了,直接拷贝他,目前只依赖了zlib库。
  

步骤六:部署到开发板

  直接复制目录下的mplayer即可,因为依赖的zlib其实在板子上已经有了,所以此处不用复制库。

步骤七:交叉编译系统上测试

  

arm-linux开发板测试播放

  播放音频文件,如下图:

  
  播放成功!!!

 
 

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/119991329

Qt+MPlayer音乐播放器开发笔记(二):交叉编译MPlayer以及部署到开发板播放演示的更多相关文章

  1. SDL开发笔记(二):音频基础介绍、使用SDL播放音频

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  2. Potplayer播放器使用笔记

    Potplayer播放器使用笔记 1.暂停-播放的快捷键是 空格键2.C播放视频的加速倍数3.X播放的时候减速的倍数 Tab键:显示一下播放的信息,很多 Enter键:全屏或是缩小播放窗口 全屏拉伸快 ...

  3. Django开发笔记二

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.xadmin添加主题.修改标题页脚和收起左侧菜单 # ...

  4. Modbus库开发笔记之十一:关于Modbus协议栈开发的说明(转)

    源: Modbus库开发笔记之十一:关于Modbus协议栈开发的说明

  5. 专题开发十二:JEECG微云高速开发平台-基础用户权限

      专题开发十二:JEECG微云高速开发平台-基础用户权限 11.3.4自己定义button权限 Jeecg中.眼下button权限设置,是通过对平台自己封装的button标签(<t:dgFun ...

  6. swift 音乐播放器项目-《lxy的杰伦情歌》开发实战演练

    近期准备将项目转化为OC与swift混合开发.试着写一个swift音乐播放器的demo,体会到了swift相对OC的优势所在.废话不多说.先上效果图: watermark/2/text/aHR0cDo ...

  7. vue实现音乐播放器实战笔记

    原文链接:https://blog.csdn.net/Forever201295/article/details/80266600 一.项目说明该播放器的是基于学习vue的实战练习,不用于其他途径.应 ...

  8. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  9. EasyUI 开发笔记(二)

    接上篇 :EasyUI 开发笔记(一)  (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...

  10. Modbus库开发笔记之十一:关于Modbus协议栈开发的说明

    对于Modbus协议栈的整个开发内容,前面已经说得很清楚了,接下来我们说明一下与开发没有直接关系的内容. 首先,关于我为什么开发这个协议栈的问题.我们的初衷只是想能够在开发产品时不用每次都重写这一部分 ...

随机推荐

  1. [转帖]3.3.6. 活跃会话历史报告SYS_KSH

    https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys- ...

  2. [转帖]PyCharm无法安装第三方模块,一直提示 updating list:time out 解决办法

    Pycharm无法安装第三方模块解决办法: 1.打开pycharm的项目的venv文件夹 2.打开文件夹目录中的pyvenv文件 3.将文件中的include-system-site-packages ...

  3. nginx日志定期备份清理的方法

    nginx日志定期备份清理的方法 前言 实在不想动不动就 yum install 也不太想因为一个很小的需求就搞一下ansible. 想着能够尽量简单, 尽量方便的进行一些工作. 具体思路就是 压缩, ...

  4. ContextSwitch 学习与使用

    ContextSwitch 学习与使用 说明 github上面有一个简单的测试系统调用以及上下文切换的工具. contextswitch. 下载之后直接make就可以进行简单的测试 需要注意的是 部分 ...

  5. [转帖]UTF8 和 AL32UTF8 的区别

    本文章向大家介绍UTF8 和 AL32UTF8 的区别,主要内容包括 .使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下.  UTF8 和 AL32UTF8 ...

  6. [转载]关于NSA的EternalBlue(永恒之蓝) ms17-010漏洞利用

    2017年5月19日   感谢原作者:http://www.cnblogs.com/cnbluerain/           好久没有用这个日志了,最近WannaCry横行,媒体铺天盖地的报道,我这 ...

  7. WebAssembly入门笔记[2]:利用Memory传递数据

    利用灵活的"导入"和"导出"机制,WebAssembly与承载的JavaScript应用之间可以很便利地"互通有无".<与JavaSc ...

  8. Nginx被它打败了?

    Nginx被它打败了? 我们经常使用Nginx作为我们系统的代理,通常情况下是完全够用的,但是有时候业务的复杂性,我们也需要使用在网关中去代理中做一些业务,这个时候Nginx也可以使用lua脚本扩展, ...

  9. echarts api的介绍

    参考的地址:https://echarts.apache.org/zh/api.html echarts.init echarts.init(dom?: HTMLDivElement|HTMLCanv ...

  10. css 宽度分离原则

    我们想设计一个w=180px:h=100px的div; .demo1 { width: 180px; height: 100px; background: pink; padding: 10px; b ...