MPayer:
MPlayer是一款開(kāi)源多媒體播放器,以GNU通用公共許可證發(fā)布。此款軟件可在各主流作業(yè)系統(tǒng)使用,例如Linux和其他類(lèi)Unix系統(tǒng)、微軟的視窗系統(tǒng)及蘋(píng)果電腦
的Mac OS X系統(tǒng)。MPlayer是建基于命令行界面,在各作業(yè)系統(tǒng)可選擇安裝不同的圖形界面。mplayer的另一個(gè)大的特色是廣泛的輸出設(shè)備支持。它可以在X11、
Xv、DGA、OpenGL、SVGAlib、fbdev、AAlib、DirectFB下工作,而且你也能使用GGI和SDL和一些低級(jí)的硬件相關(guān)的驅(qū)動(dòng)模式(比如Matrox、3Dfx和Radeon、
Mach64、Permedia3)。MPlayer還支持通過(guò)硬件MPEG解碼卡顯示,諸如DVB 和DXR3與Hollywood+。
Mplayer移植:
首先需要知道一點(diǎn)的是因?yàn)镸Player移植后需要mad庫(kù)播放音頻,所以還需要交叉編譯libmad。
我們要先獲得libmad庫(kù),我這里用的是libmad-0.15.1b.tar.gz。首先將其解壓。
而后配置文件#./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging
--prefix=/usr/local/arm/usr/local/arm/4.3.1-eabi-armv6/lib(交叉編譯工具目錄中的庫(kù)) CC=arm-linux-gcc
#make && make install
就這樣,libmad就編譯完成了,
接下來(lái)的就是MPlayer了,我這里用的是MPlayer-1.0rc2.tar.bz2,首先將其解壓
而后配置文件#./configure --prefix=/opt/ARMMPlayer --cc=arm-linux-gcc --host-cc=gcc --target=arm-linux --enable-static --disable-win32dll
--disable-dvdread --enable-fbdev --disable-liba52 --disable-libmpeg2 --disable-mencoder --disable-live --disable-live --disable-mp3lib
--enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6
在這里要做一些裁剪,我在這里說(shuō)一些簡(jiǎn)單的項(xiàng):
--cc 交叉編譯工具,如果沒(méi)添加到環(huán)境變量,就要指定完整路徑
--target 在pre版本中,對(duì)于--target和這個(gè)配置參數(shù)是這樣描述的:
===============================================
--target=arm-armv4l-linux這個(gè)參數(shù)要注意的是一個(gè)分三部分,第一部分的arm是指arch,這里設(shè)定為arm;第二部分的armv4l是指具體的版本,
這個(gè)要注意了,一定要跟libavcodec目錄下的平臺(tái)目錄名一致,否則為這個(gè)平臺(tái)的優(yōu)化代碼沒(méi)辦法編譯進(jìn)去(據(jù)我觀察是這樣的);第三部分是系統(tǒng)平臺(tái)。
===============================================
但是在rc2版本中,只需要--target=arm-linux這樣指定就好了。
--enable-static 是設(shè)定靜態(tài)連接,不需要一堆亂七八糟的動(dòng)態(tài)庫(kù),尤其對(duì)我們這些新手來(lái)說(shuō)省了很多的麻煩。如果設(shè)置了這個(gè)參數(shù)就不用設(shè)置--prefix了,
另外也不用執(zhí)行make install。
--prefix=/tmp/mplayer-rc2
make install后,可執(zhí)行程序就安裝在/tmp/mplayer-rc2目錄下。
--disable-win32dll
禁用win32動(dòng)態(tài)鏈接庫(kù)支持。在pre版本中該參數(shù)為
--disable-dvdread
禁用libdvdread.
--enable-fbdev
支持fbdev,這個(gè)一定要選上。
--disable-mp3lib 和 --enable-mad
arm系列的cpu,一般都沒(méi)浮點(diǎn)運(yùn)算單元,而mplayer的mp3解碼默認(rèn)使用mp3lib,這個(gè)是浮點(diǎn)運(yùn)算庫(kù),在arm上肯定跑不了,
使用ffmp3或者libmad(需要外部庫(kù)libmad支持)應(yīng)該就沒(méi)問(wèn)題了。所以這里需要禁止掉mencoder和使能libmad。
--disable-mencoder
禁止編碼功能。項(xiàng)目上不需要此功能,禁掉以縮小尺寸。而且聽(tīng)說(shuō)在這里編譯mencoder會(huì)有問(wèn)題,聽(tīng)說(shuō)而已,沒(méi)試過(guò)。
--disable-live
禁止live 555流媒體。(不知道干啥用)
--enable-libavcodec_a
啟用靜態(tài)的libavcodec解碼。在pre版本中該參數(shù)為--enable-libavcodec。
--disable-armv5te --disable-armv6
禁用armv5te、armv6指令擴(kuò)展。
--with-extraincdir和-with-extralibdir
指定libmad和mad.h的路徑。mad的路徑被添加到編譯參數(shù)-I和-L后面,替換libmad后需要指定。
注:在pre版本中需要指定--host-cc=gcc配置參數(shù)。用來(lái)編譯一些需要在host上執(zhí)行的中間文件的,如codec-cfg,切記不能缺少。
但在rc2版本中該參數(shù)可以省略掉。
最后一步就是編譯安裝嘍#make && make install
就這樣交叉編譯就哦了,剩下的就是移植了,將剛才生成的庫(kù)文件可可執(zhí)行文件通過(guò)NFS或者是別的什么方法移植到板上即可.....
聯(lián)系客服