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

MPlayer移植步骤相关推荐

  1. 最新版本mplayer移植pxa270成功

    最新版本mplayer移植pxa270成功 1.下载新版本的mplayer,方法可以参见其他版本的README cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/c ...

  2. 最新版本mplayer移植pxa270成功!

    最新版本mplayer移植pxa270成功 1.下载新版本的mplayer,方法可以参见其他版本的README svn checkout svn://svn.mplayerhq.hu/mplayer/ ...

  3. Linux开发板怎么用madplay,Linux中madplay 音乐播放器移植步骤

    madplay 音乐播放器移植步骤 madplay版本: madplay-0.15.2 交叉编译器版本: arm-linux-gcc 3.4.1 操作系统平台: Linux -- Red Hat 9. ...

  4. [lcm] Qualcomm平台的显示屏lcd驱动移植步骤

    1lk部分 1-1 target_displayc 1-2 oem_panelc 1-3 panel_innont51021b_1200p_videoh 2Kernel 2-1 dsi-panel-b ...

  5. 基于MT6752/32平台 Android L版本驱动移植步骤

    基于MT6752/32平台 Android L版本驱动移植步骤 根据MK官网所述,在Android L 版本上Turnkey ABS 架构将会phase out,而Mediatek Turnkey架构 ...

  6. mtk camera 移植步骤

    mtk camera 移植步骤: 1, Kernel层驱动代码文件添加 /mediatek/custom/doov92_wet_tdd/kernel/imgsensor/下添加imx179_mipi_ ...

  7. linux 内核 网卡驱动 移植,Linux内核移植步骤_添加DM9000网卡驱动(设备树).docx

    Linux内核移植步骤_添加DM9000网卡驱动(设备树) Linux内核移植步骤2015年05月13日星期三上午 11:05往设备树中添加网卡驱动:1.选平台,指定交叉编译工具链:(1).在Make ...

  8. linux 内核 网卡驱动 移植,linux内核移植步骤添加dm9000网卡驱动(设备树).docx

    linux内核移植步骤添加dm9000网卡驱动(设备树).docx LINUX内核移植步骤2015年05月13日星期三上午1105往设备树中添加网卡驱动1.选平台,指定交叉编译工具链1.在MAKEFI ...

  9. 嵌入式linux播放视频 mplayer,mplayer 移植后无法播放视频

    请 登录 后使用快捷导航 没有帐号?注册 阅 2800|回 5 最后登录2016-9-8 在线时间1 小时 威望0分 芯积分E金币好友 发表于2010-1-15 11:31 mplayer 移植后无法 ...

最新文章

  1. 提交PR后修改内容并合并commit
  2. elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
  3. 前端学习(2671): vue3.0脚手架获取功能页面布局
  4. P3019 [JZOJ]序列和
  5. cocos2d-x的定时器
  6. 【机器学习】监督学习--(分类)支持向量机SVM②
  7. 祝贺 Java 走过创新的 25 年
  8. SqlServer将特定字符串拆分并进行插入操作
  9. iPhone如何截长图?iPhone长截图教程
  10. CSDN博文精选:最受欢迎的系列专栏博客推荐
  11. 初恋失败让我学会推销自己
  12. 蜗牛学院:中国人,努力获得了荣誉却要压抑克制
  13. 切片函数python_python切片操作
  14. 虚拟机无法连接到图形服务器,vmware vsphere client无法连接到服务器
  15. 《阴阳师》手游分析报告
  16. 超融合走向红海,下一代超融合是新蓝海?
  17. A Typical Homework (a.k.a Shi Xiong Bang Bang Mang) UVA - 12412
  18. NGR/R8-PEG-ICG,肿瘤新生血管靶向肽NGR/穿膜肽R8-聚乙二醇-吲哚菁绿
  19. 思科网络模拟器EVE安装(附安装包)
  20. 百度地图数据自定义采集方法

热门文章

  1. 「MICCAI 2018」Reading Notes
  2. 【IOS】IOS/mac系统使用微软雅黑等字体
  3. 多维数组的全排列问题
  4. 《FLAT-REGION DETECTION AND FALSE CONTOUR REMOVAL IN THE DIGITAL TV DISPLAY》,译名:数字电视显示中的平场检测及伪轮廓消除
  5. 天创速盈:如何成功打造爆单商品?
  6. 左耳听风 第二十八周
  7. php 六边形 属性图 能力数值图,css怎样做出六边形图片
  8. Maven打包报错:[WARNING] The POM for xxx is missing, no dependency inform
  9. 2022中央空调的发展现状和趋势
  10. 利用gltfloader.dll或者SharpGLTF生成gltf、glb数据