成功移植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
上一個編譯的libmad在編譯mplayer時要用--with-extraincdir --with-extralibdir指定
主機Linux系統:fedora 9
主機GCC編譯器:gcc 版本 4.3.0
開發板: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庫
前面提到了使用libmad庫來替代mp3lib庫來改善mplayer在ARM處理器上播放音頻的性能,那么在編譯mplayer之前得編譯好libmad庫。
下載 libmad 包(libmad-0.15.1b.tar.gz)?http://sourceforge.net/project/showfiles.php?group_id=12349
將其解壓后,進入 libmad 的目錄,輸入配置命令:
./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/opt/toolchains/arm920t-eabi/lib CC=arm-linux-gcc 對于 --cc=arm-linux-gcc 選項要保證 arm-linux-gcc 的路徑已經有 export 過,否則給出完整路徑。
ps:其實意思就是事先已經搭建好交叉編譯環境。
?
然后再make
出現錯誤? error: unrecognized command line option “-fforce-mem”
?
| |
gedit configure.ac 替換“-fforce-mem”為“”空格。
make
make install
2、進入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
?
可能出現錯誤?
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?到當前目錄下
# cp /usr/include/inttypes.h? .(此有一點,表示復制到當前目錄)
#./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、編譯
執行
命令編譯。
下面參考http://hi.baidu.com/linuxcfan/blog/item/d448a758f2906e232934f04f.html
執行過程中會出現類似如下錯誤提示:
原因分析: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:為什么要修改兩個文件呢?因為只修改錯誤提示中的那個文件后繼續編譯則會繼續提示MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件中同樣的錯誤^_^
修改方法:使用gedit分別打開dsputil_arm_s.S、motion_comp_arm_s.S這兩個匯編源文件,將
然后再make
再 make install
?
?
出現問題:strip: Unable to recognise the format of the input file
查資料看install帶-s 參數時會自動調用strip來strip應用程序。但是arm編譯時要調用arm-linux-strip才有正確處理。解決辦法是取消-s參數,查看Makefile可以發現-s是如下
$(INSTALL) -m 755 $(INSTALLSTRIP) mplayer$(EXESUF)???? $(BINDIR)
的INSTALLSTRIP設置的,它默認是-s,因此只要簡單去掉即可。
$(INSTALL) -m 755? mplayer$(EXESUF)???? $(BINDIR)
?
執行命令:gedit Makefile,將$(INSTALLSTRIP) mplayer$(EXESUF)替換成mplayer$(EXESUF)
再make install
?
?
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zyq1228/archive/2011/04/19/6334678.aspx
得到mplayer,下載到mini2440開發板/usr/bin目錄
在開發板執行
mplayer test.avi -framedrop -quiet -vf rotate=1,scale=240:320
成功啦!這次終于有聲音了!MP3也能播哦
但仍存在問題,播放AVI文件時有圖像和聲音,但播放RM或是RMVB文件時只有聲音沒有圖像,可能是在安裝mplayer之前要先安裝相應的解碼庫,這個問題有待解決.
總結
以上是生活随笔為你收集整理的成功移植mplayer到mini2440的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: diff patch制作补丁打补丁
- 下一篇: ffmpeg + x264 编码H264