成功移植mplayer到mini2440
我自己的配置是:
./configure ?--prefix=/workplace/tool/arm-MPlayer/MPlayer_bin ?--enable-fpm=arm --host=arm-linux ?--disable-debugging ?--enable-shared --enable-static CC=arm-linux-gcc
./configure --prefix=/workplace/tool/arm-MPlayer/MPlayer_bin --cc=arm-linux-gcc --target=arm-linux ? --enable-static --disable-win32dll --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --disable-mencoder --disable-mp3lib --disable-armv5te --disable-armv6 --enable-fbdev --enable-mad --enable-libavcodec_a --enable-libavcodec_mpegaudio_hp --disable-iconv --enable-linux-devfs --disable-ivtv ?--enable-cross-compile --enable-real --enable-ossaudio --host-cc=gcc --disable-live --with-extraincdir=/workplace/tool/arm-MPlayer/MPlayer_bin/include --with-extralibdir=/workplace/tool/arm-MPlayer/MPlayer_bin/lib 2>&1|tee logfile
上一個(gè)編譯的libmad在編譯mplayer時(shí)要用--with-extraincdir --with-extralibdir指定
主機(jī)Linux系統(tǒng):fedora 9
主機(jī)GCC編譯器:gcc 版本 4.3.0
開(kāi)發(fā)板:mini2440
arm-linux-gcc交叉編譯器:arm-linux-gcc-4.4.3
下載: MPlayer-1.0rc2.tar.bz2???http://download.csdn.net/source/780629
??????????? arm-linux-gcc-4.4.3????????http://ishare.iask.sina.com.cn/f/13836544.html
????????????libmad-0.15.1b.tar.gz??? ?http://sourceforge.net/project/showfiles.php?group_id=12349
???????????
1.編譯libmad庫(kù)
前面提到了使用libmad庫(kù)來(lái)替代mp3lib庫(kù)來(lái)改善mplayer在ARM處理器上播放音頻的性能,那么在編譯mplayer之前得編譯好libmad庫(kù)。
下載 libmad 包(libmad-0.15.1b.tar.gz)?http://sourceforge.net/project/showfiles.php?group_id=12349
將其解壓后,進(jìn)入 libmad 的目錄,輸入配置命令:
./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/opt/toolchains/arm920t-eabi/lib CC=arm-linux-gcc 對(duì)于 --cc=arm-linux-gcc 選項(xiàng)要保證 arm-linux-gcc 的路徑已經(jīng)有 export 過(guò),否則給出完整路徑。
ps:其實(shí)意思就是事先已經(jīng)搭建好交叉編譯環(huán)境。
?
然后再make
出現(xiàn)錯(cuò)誤? error: unrecognized command line option “-fforce-mem”
?
| |
gedit configure.ac 替換“-fforce-mem”為“”空格。
make
make install
2、進(jìn)入mplayer-1.0rc2.tar.bz2所在目錄
例如:cd /tmp?? (我把軟件包放在此目錄)
輸入: tar jxvf MPlayer-1.0rc2.tar.bz2
輸入:cd MPlayer-1.0rc2
輸入:./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm??--enable-static --disable-win32dll --disable-ivtv --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad?--with-extraincdir=/opt/toolchains/arm920t-eabi/lib/include??--with-extralibdir=/opt/toolchains/arm920t-eabi/lib/lib??--enable-libavcodec_a --language=en ?--disable-live 2>&1 | tee logfile
?
可能出現(xiàn)錯(cuò)誤?
Checking ? for ? inttypes.h ? (required) ? ... ? no?
Checking ? for ? bitypes.h ? (inttypes.h ? predecessor) ? ...?
Error: ? Cannot ? find ? header ? either ? inttypes.h ? or ? bitypes.h
解決方法?:? 到/usr/include/?? 拷貝inttypes.h?到當(dāng)前目錄下
# cp /usr/include/inttypes.h? .(此有一點(diǎn),表示復(fù)制到當(dāng)前目錄)
#./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm??--enable-static --disable-win32dll --disable-ivtv --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad ?--with-extraincdir=/opt/toolchains/arm920t-eabi/lib/include? --with-extralibdir=/opt/toolchains/arm920t-eabi/lib/lib? --enable-libavcodec_a --language=en ?--disable-live 2>&1 | tee logfile
?
3、編譯
執(zhí)行
命令編譯。
下面參考http://hi.baidu.com/linuxcfan/blog/item/d448a758f2906e232934f04f.html
執(zhí)行過(guò)程中會(huì)出現(xiàn)類似如下錯(cuò)誤提示:
原因分析:armv5以下的版本不支持pld指令(mini2440的arm9屬于armv4)
解決方法一:替換MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件和MPlayer-1.0rc2/libavcodec/armv4l/dsputil_arm_s.S文件中的pld [r1]為空即可!
ps:為什么要修改兩個(gè)文件呢?因?yàn)橹恍薷腻e(cuò)誤提示中的那個(gè)文件后繼續(xù)編譯則會(huì)繼續(xù)提示MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件中同樣的錯(cuò)誤^_^
修改方法:使用gedit分別打開(kāi)dsputil_arm_s.S、motion_comp_arm_s.S這兩個(gè)匯編源文件,將
然后再make
再 make install
?
?
出現(xiàn)問(wèn)題:strip: Unable to recognise the format of the input file
查資料看install帶-s 參數(shù)時(shí)會(huì)自動(dòng)調(diào)用strip來(lái)strip應(yīng)用程序。但是arm編譯時(shí)要調(diào)用arm-linux-strip才有正確處理。解決辦法是取消-s參數(shù),查看Makefile可以發(fā)現(xiàn)-s是如下
$(INSTALL) -m 755 $(INSTALLSTRIP) mplayer$(EXESUF)???? $(BINDIR)
的INSTALLSTRIP設(shè)置的,它默認(rèn)是-s,因此只要簡(jiǎn)單去掉即可。
$(INSTALL) -m 755? mplayer$(EXESUF)???? $(BINDIR)
?
執(zhí)行命令:gedit Makefile,將$(INSTALLSTRIP) mplayer$(EXESUF)替換成mplayer$(EXESUF)
再make install
?
?
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/zyq1228/archive/2011/04/19/6334678.aspx
得到mplayer,下載到mini2440開(kāi)發(fā)板/usr/bin目錄
在開(kāi)發(fā)板執(zhí)行
mplayer test.avi -framedrop -quiet -vf rotate=1,scale=240:320
成功啦!這次終于有聲音了!MP3也能播哦
但仍存在問(wèn)題,播放AVI文件時(shí)有圖像和聲音,但播放RM或是RMVB文件時(shí)只有聲音沒(méi)有圖像,可能是在安裝mplayer之前要先安裝相應(yīng)的解碼庫(kù),這個(gè)問(wèn)題有待解決.
總結(jié)
以上是生活随笔為你收集整理的成功移植mplayer到mini2440的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: diff patch制作补丁打补丁
- 下一篇: Linux中DD命令详解