mplayer Mp4播放器制作

友善Mini2440移植MP4播放器

开发环境:Ubuntu 8.10

操作系统:Linux内核版本:2.6.32

硬件平台:mini2440 By友善之臂

Arm-Linux-Gcc交叉编译环境:arm-linux-gcc-4.4.3.tar.gz点击下载

MP4视频播放器所需软件包

arm-linux-gcc-4.4.3.tar.gz点击上面下载

libstdc++.so.6.0.10 点击下载

MPlayer-1.0rc2.tar.gz可以去官方http://www.mplayerhq.hu/design7/dload.html下载最新版本

官方还有皮肤,文字库等等,可以根据需要下载。

建立交叉编译环境

首先要做的

# rm –rf /usr/lib/libstdc++.so.6

把下载到的libstdc++.so.6.0.10复制到/usr/lib/下(#cplibstdc++.so.6.0.10  /usr/lib/

#cd /usr/lib/

建立链接软链接(# ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6

查看链接是否成功(#strings  /usr/lib/libstdc++.so.6 | grep GLIBCXX)之下如果出现

GLIBCXX_3.4.9

GLIBCXX_3.4.10

则表示链接成功!祝贺你,Let’s go on!

 

建立交叉编译环境

在虚拟机任意目录下建立文件夹如:mp4

#mkdir /mp4

arm-linux-gcc-4.4.3.tar.gz压缩文件复制到/mp4

#cp arm-linux-gcc-4.4.3.tar.gz /mp4

解压缩文件arm-linux-gcc-4.4.3.tar.gz

(#cd /mp4)

(#tar xvzf arm-linux-gcc-4.4.3.tar.gz -C /)

 

修改文件在/etc/profile文件下添加交叉编译器的路径export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin

#gedit /etc/profile在文件最后添加交叉编译器的绝对路径export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin

然后保存退出。source /etc/profile (使配置文件快速生效,不必注销或者重启登录)

测试交叉编译器是否搭建正确,写一个简单的C文件,用交叉编译器编译,file编译结果如果看到HelloELF23-bit LSB executableARM字样,恭喜你!成功了,Go On

至此,最主要的交叉编译环境已经搭建成功!

编译安装MPlayer

/GuqSir/MP4文件夹下建立myplayer文件夹

#cd //GuqSir/MP4 #mkdir myplayer)

把下载的MPlayer-1.0rc2.tar.gz压缩包复制到/GuqSir/MP4/myplayer并解压.

#cp MPlayer-1.0rc2.tar.gz/GuqSir/MP4/myplayer

(#cd /GuqSir/MP4/myplayer)

(#tar jvxf MPlayer-1.0rc2.tar.bz2)

进入/GuqSir/MP4/mplayer/MPlayer-1.0rc2文件夹执行如下命令:

#cd /GuqSir/MP4/mplayer/MPlayer-1.0rc2

(#./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm  --enable-static --disable-win32dll --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --disable-ivtv --disable-mad --enable-libavcodec_a --language=zh_CN --disable-live 2>&1 | tee logfile)

注释:

MPlayer不支持常见的--host来修改编译工具前缀.必须用--cc,--ar,--ranlib这样参数来修改.

--disable-mp3lib是关闭默认的MP3解码库,--disable-mad是使用libmad支持.--disable-dvbhead --disable-dvdread --disable-dvdnav  --disable-dvdread-internal 都是DVD相关库--enable-fbdev  打开framebuffer支持.ARM开发板必须的. --enable-static如果使用静态编译尺寸大约是8M,动态编译是6M,这样可能是无论哪种编译方式,mplayer都把自带的解码库链接到自身,多出2M应该是系统标准库的尺寸。

警告:如果不加--disable-ivtv会出现ivtv文件产生的错误。

--enable-static如果使用静态编译尺寸大约是8M,动态编译是6M,这样可能是无论哪种编译方式,mplayer都把自带的解码库链接到自身,多出2M应该是系统标准库的尺寸。

执行完以上命令后执行make命令,make时会遇到错误,不支持pld[r1]指令

解决方法:

(#gedit/GuqSir/MP4/myplayer/MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S)文件

 (#gedit /GuqSir/MP4/myplayer/MPlayer-1.0rc2/libavcodec/armv4l/dsputil_arm_s.S)

两个文件的开始处定义

#ifndef HAVE_PLD

.macro pld reg

.endm

#endif

执行make命令:

执行完make命令后/GuqSir/MP4/myplayer/ MPlayer-1.0rc2中的mplayer已经有了。

/GuqSir/MP4/myplayer/MPlayer-1.0rc2文件夹中的mplayer通过tftp软件下载到开发板中任意位置(在此提议可以把mplayer文件放到/usr/bin中因为MP3播放器就在其中)并向开发板中下载一个视频到/usr/bintest.avi

在开发板中执行./mplayer test.avi -framedrop -quiet -vf rotate=1,scale=240:320命令就可以在开发板上看见视频了,还有声音。

#cd /usr/bin

(#./mplayer test.wmv -framedrop -quiet -vf rotate=1,scale=240:320)

 

至此向s3c2440移植MP4视频播放器已经完全成功!

你可能感兴趣的:(虚拟机,ubuntu,dll,Path,编译器,linux内核)