MPlayer在S3C2440开发板上的移植
2014-02-20 19:06
288 查看
移植之前先做好移植前准备,安装好arm-linux交叉编译器,并下载 MPlayer-1.0rc2.tar.bz2 和libmad包(libmad-0.15.1b.tar.gz)
我所用的linux版本为linux-2.6.32 交叉编译器为4.4.3
1.安装libmad
(1)解压libmad
解压libmad包(libmad-0.15.1b.tar.gz);
$ tar zxvf libmad-0.15.1b.tar.gz -C libmad
(2)进入libmad的目录,输入配置命令:
$ cd libmad
$ ./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/home/bamboo/testcode/libmad/lib CC=/opt/caozhudong/bin/armv4tl-caozhudong-linux-gnueabi-gcc(要保证arm-linux-gcc的路径已经有 export过,否则给出完整路径。)
(3)交叉编译libmad(运行)
$ make
因为编译器版本较高会报错,进入makfile文件删除 -fforce-mem就行
$ make install
这样就可以看到 /usr/local/arm/3.3.2/lib 目录下多了include和lib目录,这些就是libmad相关的库。
2.安装MPlayer
(1)解压 MPlayer
解压 MPlayer包( MPlayer-1.0rc2.tar.bz2)
$ tar jxvf MPlayer-1.0rc2.tar.bz2 -C mplayer
(2)进入mplayer的目录,输入配置命令:
$ cd mplayer
./configure关键就是后面的配置参数了。rc2版本的配置参数相比pre版本而言有些微的改变,配置参数如下:
$ ./configure --cc=/opt/caozhudong/bin/armv4tl-caozhudong-linux-gnueabi-gcc --host-cc=gcc --target=arm-linux --enable-static --disable-win32dll --disableivtv --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad
--enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6 --with-extraincdir=/home/bamboo/testcode/libmad/lib/include --with-extralibdir=/home/bamboo/testcode/libmad/lib/lib
--cc : 交叉编译工具,如果没添加到环境变量,就要指定完整路径
--target : 在pre版本中,对于--target和这个配置参数是这样描述的:
===============================================
--target=arm- armv4l-linux这个参数要注意的是一个分三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本,这个要注意了,一定要跟libavcodec目录下的平台目录名一致,否则为这个平台的优化代码没办法编译进去(据我观察是这样的);第三部分是系统平台。
===============================================
但是在rc2版本中,只需要--target=arm-linux这样指定就好了。
--enable-static : 是设定静态连接,不需要一堆乱七八糟的动态库,尤其对我们这些新手来说省了很多的麻烦。如果设置了这个参数就不用设置--prefix了,另外也不用执行 make install。
--prefix=/tmp/mplayer-rc2 : make install后,可执行程序就安装在/tmp/mplayer-rc2目录下,不写则可执行程序安装在当前目录下面。
--disable-win32dll : 禁用win32动态链接库支持。在pre版本中该参数为
--disable-dvdread : 禁用libdvdread.
--enable-fbdev : 支持fbdev,这个一定要选上。
--disable-mp3lib 和 --enable-mad : arm系列的cpu,一般都没浮点运算 单元,而mplayer的mp3解码默认使用mp3lib,这个是 浮点运算库,在arm上肯定跑不了,使用ffmp3或者libmad(需要外部库libmad支持)应该就没问题了。所以这里需要禁止掉mencoder和使能 libmad。
--disable-mencoder : 禁止编码功能。项目上不需要此功能,禁掉以缩小尺寸。而且听说在这里编译mencoder会有问题,听说而已,没试过。
--disable-live : 禁止live 555流媒体。(不知道干啥用)
--enable-libavcodec_a : 启用静态的libavcodec解码。在pre版本中该参数为--enable-libavcodec。
--disable-armv5te --disable-armv6 : 禁用armv5te、armv6指令扩展。
--with-extraincdir和-with-extralibdir : 指定libmad和mad.h的路径。mad的路径被添加到编译参数-I和-L后面,替换libmad后需要指定(此路径就是第一步交叉编译libmad时生成的include和lib目录,很关键,第一次交叉编译时就是这里没有指定,出现错误的)。
注:在pre版本中需要指定--host-cc=gcc配置参数。用来编译一些需要在host上执行的中间文件的,如codec-cfg,切记不能缺少。但在rc2版本中该参数可以省略掉。
关于make中的一些错误的解决方案参考我的其他博文
第四步:将生成的mplayer拷到SD卡中,同时拷备视频文件如*.avi,音频文件如*.mp3,启动K390机器,挂载SD卡,使用如下命令播放音视频:
./mplayer
*.avi
./mplayer
*.mp3
值得注意的是,之前使用公司其他同事编译的mplayer,放音视频都会很卡,使用1.0版本的mplayer后,播放音频变得很流畅。但是播放一个512*384的AVI格式的视频文件时,仍然很卡。使用如下命令播放,就变得很流畅了:
./mplayer –fs –ac mad *.avi
这里-fs表示全屏播放,即电影显示在正中央,周围填充黑色。-acmad表示先尝试使用libmad,其他解码器作为后备。
播放过程中,可以通过9和0键降低或升高音量
我所用的linux版本为linux-2.6.32 交叉编译器为4.4.3
1.安装libmad
(1)解压libmad
解压libmad包(libmad-0.15.1b.tar.gz);
$ tar zxvf libmad-0.15.1b.tar.gz -C libmad
(2)进入libmad的目录,输入配置命令:
$ cd libmad
$ ./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/home/bamboo/testcode/libmad/lib CC=/opt/caozhudong/bin/armv4tl-caozhudong-linux-gnueabi-gcc(要保证arm-linux-gcc的路径已经有 export过,否则给出完整路径。)
(3)交叉编译libmad(运行)
$ make
因为编译器版本较高会报错,进入makfile文件删除 -fforce-mem就行
$ make install
这样就可以看到 /usr/local/arm/3.3.2/lib 目录下多了include和lib目录,这些就是libmad相关的库。
2.安装MPlayer
(1)解压 MPlayer
解压 MPlayer包( MPlayer-1.0rc2.tar.bz2)
$ tar jxvf MPlayer-1.0rc2.tar.bz2 -C mplayer
(2)进入mplayer的目录,输入配置命令:
$ cd mplayer
./configure关键就是后面的配置参数了。rc2版本的配置参数相比pre版本而言有些微的改变,配置参数如下:
$ ./configure --cc=/opt/caozhudong/bin/armv4tl-caozhudong-linux-gnueabi-gcc --host-cc=gcc --target=arm-linux --enable-static --disable-win32dll --disableivtv --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad
--enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6 --with-extraincdir=/home/bamboo/testcode/libmad/lib/include --with-extralibdir=/home/bamboo/testcode/libmad/lib/lib
--cc : 交叉编译工具,如果没添加到环境变量,就要指定完整路径
--target : 在pre版本中,对于--target和这个配置参数是这样描述的:
===============================================
--target=arm- armv4l-linux这个参数要注意的是一个分三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本,这个要注意了,一定要跟libavcodec目录下的平台目录名一致,否则为这个平台的优化代码没办法编译进去(据我观察是这样的);第三部分是系统平台。
===============================================
但是在rc2版本中,只需要--target=arm-linux这样指定就好了。
--enable-static : 是设定静态连接,不需要一堆乱七八糟的动态库,尤其对我们这些新手来说省了很多的麻烦。如果设置了这个参数就不用设置--prefix了,另外也不用执行 make install。
--prefix=/tmp/mplayer-rc2 : make install后,可执行程序就安装在/tmp/mplayer-rc2目录下,不写则可执行程序安装在当前目录下面。
--disable-win32dll : 禁用win32动态链接库支持。在pre版本中该参数为
--disable-dvdread : 禁用libdvdread.
--enable-fbdev : 支持fbdev,这个一定要选上。
--disable-mp3lib 和 --enable-mad : arm系列的cpu,一般都没浮点运算 单元,而mplayer的mp3解码默认使用mp3lib,这个是 浮点运算库,在arm上肯定跑不了,使用ffmp3或者libmad(需要外部库libmad支持)应该就没问题了。所以这里需要禁止掉mencoder和使能 libmad。
--disable-mencoder : 禁止编码功能。项目上不需要此功能,禁掉以缩小尺寸。而且听说在这里编译mencoder会有问题,听说而已,没试过。
--disable-live : 禁止live 555流媒体。(不知道干啥用)
--enable-libavcodec_a : 启用静态的libavcodec解码。在pre版本中该参数为--enable-libavcodec。
--disable-armv5te --disable-armv6 : 禁用armv5te、armv6指令扩展。
--with-extraincdir和-with-extralibdir : 指定libmad和mad.h的路径。mad的路径被添加到编译参数-I和-L后面,替换libmad后需要指定(此路径就是第一步交叉编译libmad时生成的include和lib目录,很关键,第一次交叉编译时就是这里没有指定,出现错误的)。
注:在pre版本中需要指定--host-cc=gcc配置参数。用来编译一些需要在host上执行的中间文件的,如codec-cfg,切记不能缺少。但在rc2版本中该参数可以省略掉。
关于make中的一些错误的解决方案参考我的其他博文
第四步:将生成的mplayer拷到SD卡中,同时拷备视频文件如*.avi,音频文件如*.mp3,启动K390机器,挂载SD卡,使用如下命令播放音视频:
./mplayer
*.avi
./mplayer
*.mp3
值得注意的是,之前使用公司其他同事编译的mplayer,放音视频都会很卡,使用1.0版本的mplayer后,播放音频变得很流畅。但是播放一个512*384的AVI格式的视频文件时,仍然很卡。使用如下命令播放,就变得很流畅了:
./mplayer –fs –ac mad *.avi
这里-fs表示全屏播放,即电影显示在正中央,周围填充黑色。-acmad表示先尝试使用libmad,其他解码器作为后备。
播放过程中,可以通过9和0键降低或升高音量
相关文章推荐
- 移植Mplayer到OK6410开发板
- qt移植到s3c2440开发板上
- 移植、裁减及配置Linux内核到s3c2440开发板
- Mplayer1.0在ok6410开发板上的移植(多版本交叉编译器)
- u-boot-2010在s3c2440开发板上的移植
- 移植Mplayer到OK6410开发板
- 【操作详解】终于成功移植Mplayer到OK6410开发板上了,发帖详述移植全过程!(转载)
- MPlayer在ARM上的移植(S5PV210开发板)
- Qt-Embedded-4.5.2移植到s3c2440开发板
- 移植、裁减及配置Linux内核到s3c2440开发板
- 移植Mplayer到OK6410开发板
- Linux平台基于S3C2440的MPlayer的移植
- Mplayer 移植到tiny6410开发板
- 在s5pv210开发板linux平台上移植mplayer--基于x210开发板
- Boa Web服务器在PC和S3C2440开发板上移植
- Boa Web服务器在PC和S3C2440开发板上移植
- MPlayer移植到mini2440开发板
- s3c2440 arm+linux 开发板移植rt3070驱动笔记
- 移植Mplayer到OK6410开发板
- mini440开发板移植mplayer