织梦CMS - 轻松建站从此开始!

罗索

关于mplayer移植说明

jackyhwei 发布于 2010-03-12 22:41 点击:次 
需要注意的是如果使用CVS的MPlayer 那么必须从FFmpeg的CVS树中提取libavcodec,因为FFmpeg 0.4.5不能用于MPlayer。FFmpeg是一组开源的解码器包,能够以兼容方式解码
TAG:

在开始移植Mplayer播放器之前,需要准备好Mplayer的源代码包。可以到http://www.mplayerhq.hu /design7/dload.html 下载。需要注意的是如果使用CVS的MPlayer 那么必须从FFmpeg的CVS树中提取libavcodec,因为FFmpeg 0.4.5不能用于MPlayer。FFmpeg是一组开源的解码器包,能够以兼容方式解码以:

H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1 编码格式编码的视频流。它不仅能对其中一些进行编码, 同时提供比Win32解码器或Mayo工程的DivX4/5库更高的速度。它包含很多不错的解码 器,尤其重要的是MPEG4的几个变种:DivX 3,DivX 4,DivX 5,Windows Media Video 7 (WMV1),所以需 要用:

cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login

cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg

来把libavcodec目录从FFmpeg的源代码里移到MPlayer的CVS树的根 部。

如果使用MPlayer发行版,在源码包里就有libavcodec,可以正常编译。本系统 下载的是MPlayer-1.0rc1.tar.bz2,可以直接进行编译。

首先对源代码包解压,进入MPlayer的主目录,进行configure配置:

./configure --cc=arm-linux-gcc --host-cc=gcc --enable-cross-compile   --target=arm-armv4l-linux --enable-linux-devfs --disable-win32   --disable-dvdread --enable-fbdev --disable-mencoder --enable-libavcodec   --enable-liba52 --disable-libmpeg2 --enable-liba52 --disable-mp3lib --enable-static --disable-live 2>&1 | tee logfile --with-extraincdir=/opt/crosstool/arm-linux/arm-linux/include\ --with-extralibdir=/opt/crosstool/arm-linux/arm-linux/lib \

下面对上述的配置进行简单说明:

--cc=arm-linux-gcc设置交叉编译器

--host-cc=gcc是用来编译一些需要在host上执行的中间文件的,如codec -cfg,这一项非常重要。如果没有这一项,则遇到提示codec-cfg不能被执行出错时的解决方法是先将codec-cfg编译成i386平台的在再 这里停下来时用i386的codec-cfg替代从而使编译继续。

--enable-cross-compile 允许交叉编译。这项去掉也可以。

--enable-linux-devfs 对设备文件系统进行默认设置,如果没有加上这个选项,在pxa270平台上不能正常运行程序,不能显示。

--target=arm-armv4l-linux这个参数要注意的是一个分三部分,第一 部分的arm是指arch,这里设定为arm;第二部分的 armv4l是指具体的版本,这里必须要跟libavcodec目录下的平台目录名一致,否则 为这个平台的优化代码没办法编译进去;第三部分是系统平台。这个主要是用在libavcodec的编译中,libavcodec下面支持很多平台,比如 i386,armv4l,ppc,sh,……,进入libavcodec的目录下就可以看见这些子目录,里面分别存放跟这些平台相关的优化汇编代码,本系 统所用的平台是xscale pxa270,跟arm是兼容的,所以设置为armv4l,当然在编译的过程中还可以设置为iwmmxt,因为270平台支 持无线mmx指令。

--enable-static是设定静态连接。

最后的一个2>&1 | tee logfile意思是将执行的情况在输出到屏幕的同时记录到logfile文件中。

下一步进行编译,编译器是博创提供的交叉编译工具, arm-linux-gcc 3.4.3版本。

键入命令make

程序编译通过,得到在arm平台上运行的可执行文件mplayer。

 

(jacky)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201003/8738.html]
本文出处:网络博客 作者:jacky
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容