Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149829
  • 博文数量: 18
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 222
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-24 22:24
个人简介

电子民工

文章存档

2011年(1)

2009年(16)

2008年(1)

我的朋友

分类: LINUX

2009-08-31 21:39:25

(一)移植准备工作

    下载代码:A)下载 libmad 包( libmad-0.15.1b.tar.gz)

             B)MPlayer-1.0pre7try2.bz2

             C)交叉编译器使用 3.3.2 

    运行环境:QQ2440+RedHatLinux9.0+arm-linux-gcc-3.3.2

(二)配置交叉编译器:可以直接在网上下载编译好的交叉编译环境,比如友善提供的交叉编译器

(三)编译libmad库文件如下步骤:

下载 libmad 包( libmad-0.15.1b.tar.gz );

解压tar -xzvf libmad-0.15.1b.tar.gz
进入libmad 的目录,输入配置命令:
./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/usr/local/arm/3.3.2/lib CC=arm-linux-gcc
(要保证 arm-linux-gcc 的路径已经有 export 过,否则给出完整路径。)

make
make install

这样就可以看到 /usr/local/arm/3.3.2/lib 目录下多了 include 和 lib 目录,这些就是 libmad相关的库。

(四)编译mplayer(MPlayer-1.0pre7try2.bz2)这里按照网上流行的<移植>一文操作

MPlayer-1.0pre7try2.tar.bz2拷贝到工作目录(比如/work/pmp/)

 

cp ./MPlayer-1.0pre7try2.tar.bz2 /work/pmp/

cd /work/pmp/

tar jxvf MPlayer-1.0pre7try2.tar.bz2

mv MPlayer-1.0pre7try2 MPlayer (这里只是改个名字,原来的实在太长了)

 

上面应该不会有什么问题的,接下来就要开始编译了,各位看官可要看好了哈,来点掌声鼓励嘛…..哈哈。

 

2、开始编译

首先是配置,这里有几个要注意的地方,命令如下:

 

./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-armv4l-linux --disable-sdl --enable-static --enable-mad --enable-ossaudio --with-extraincdir=/usr/local/arm/3.3.2/lib/include --with-extralibdir=/usr/local/arm/3.3.2/lib/lib --prefix=/tmp/mplayer --disable-win32 --disable-dvdread --enable-fbdev --disable-mencoder --disable-live 2>&1 | tee logfile

 

--host-cc=gcc是用来编译一些需要在host上执行的中间文件的,如codec-cfg,切记不能少了或搞错了!《mplayers3c2410上的移植》(以下简称《移》文)一文介绍说遇到提示codec-cfg不能被执行出错时的解决方法是先将codec-cfg编译成i386平台的在再这里停下来时用i386codec-cfg替代从而使编译继续。通过实验设置了这个参数就不用那么麻烦了,而且整个过程也显得比较幽雅了。

 

--cc=arm-linux-gcc这个没什么好介绍的。如果上面没有将arm-linux-gcc的位置加入到$PATH中的话,在这个指定绝对路径好了。

 

--target=arm-armv4l-linux这个参数要注意的是一个分三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本,这个要注意了,一定要跟libavcodec目录下的平台目录名一致,否则为这个平台的优化代码没办法编译进去(据我观察是这样的^_@ );第三部分是系统平台。

 

--enable-static是设定静态连接,不需要一堆乱七八糟的动态库,尤其对我们这些新手来说省了很多的麻烦。如果设置了这个参数就不用设置—prefix了,另外也不用执行make install

 

最后的一个2>&1 | tee logfile意思是将执行的情况在输出到屏幕的同时记录到logfile文件中,在控制台下编译比较有用。

 

剩余的几个参数没什么好介绍的了,记住--disable-mencoder要加上,mencoder在这里编译会有问题,还没有时间去研究呢。如果不清楚其它的参数的意思自己看configure文件吧,里面都有介绍。

 

配置完成了就该编译了。执行

 

make

 

这里在我的机器上大概花费了2-3分钟的时间。这样在当前目录下就得到可执行的mplayer文件。

(五)如何在arm上运行mplayer和音视频文件

   首先配置nfs服务如下:

   1)

配置过程:(默认NFS都已经进行安装,PC-Linux的IP为192.168.1.101)

1.#ntsysv运行后,选中nfs选项,取消[]iptables选项

2.运行安全级别和防火墙,进行安全级别设置。防火墙:Disable

3.运行服务器设置-NFS,添加NFS目录:/home/nfs;

开发板为:192.168.1.17;

2)

PC端:

1)#vi /etc/exports

  输入/home/nfs 192.168.1.230(rw, sync, no_root_squash)

  保存退出

2)#cd /etc/init.d

  exportfs -rav

  ./nfs restart

3)开发板:

  开机后进入根目录,

  mount -t nfs -o nolock 192.168.1.245:/home/nfs /mnt/nfs

  ls /mnt/nfs

  一般就可以挂载了,也可以在开发板的/etc/init.d/rcS文件中加入上面的命令脚本,开机就可以自动挂载了

注意要在挂载前用Ping 命令查看是否网络相通,网段要求一致,退出要用

  umount /mnt/nfs

4)使用mplayer如下

全屏
./mplayer -fs -zoom -x 240 -y 320 -cache 8192 -nosound *.avi-fs 居中
-zoom -x 1024 -y 768 全屏
-cache 8192 设置缓存大小
-nosound 取消音频

横屏

./mplayer -vf rotate=1,scale=240:320 -cache 8192 -nosound *.avi-fs

就能横屏适应屏幕播放了
  

 循环
./mplayer -loop 5 *.avi-loop 5 循环播放5次,如果为0的话就不停的播放
   播放列表
ls /home/play/music/*.mp3 > mp3.lst./mplayer -playerlist mp3.lst -shuffle -fs-playlist 指定播放列表
-shuffle 指定随机播放

 

 

阅读(2557) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~