歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> MPlayer的移植

MPlayer的移植

日期:2017/3/1 10:14:32   编辑:Linux編程

MPayer:
MPlayer是一款開源多媒體播放器,以GNU通用公共許可證發布。此款軟件可在各主流作業系統使用,例如Linux和其他類Unix系統、微軟的視窗系統及蘋果電腦的Mac OS X系統。MPlayer是建基於命令行界面,在各作業系統可選擇安裝不同的圖形界面。mplayer的另一個大的特色是廣泛的輸出設備支持。它可以在X11、Xv、DGA、OpenGL、SVGAlib、fbdev、AAlib、DirectFB下工作,而且你也能使用GGI和SDL和一些低級的硬件相關的驅動模式(比如Matrox、3Dfx和Radeon、
Mach64、Permedia3)。MPlayer還支持通過硬件MPEG解碼卡顯示,諸如DVB 和DXR3與Hollywood+。

Mplayer移植:
首先需要知道一點的是因為MPlayer移植後需要mad庫播放音頻,所以還需要交叉編譯libmad。
我們要先獲得libmad庫,我這裡用的是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(交叉編譯工具目錄中的庫) CC=arm-linux-gcc
#make && make install
就這樣,libmad就編譯完成了,
接下來的就是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
在這裡要做一些裁剪,我在這裡說一些簡單的項:
--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後需要指定。
注:在pre版本中需要指定--host-cc=gcc配置參數。用來編譯一些需要在host上執行的中間文件的,如codec-cfg,切記不能缺少。
但在rc2版本中該參數可以省略掉。
最後一步就是編譯安裝喽#make && make install

就這樣交叉編譯就哦了,剩下的就是移植了,將剛才生成的庫文件可可執行文件通過NFS或者是別的什麼方法移植到板上即可.....

Copyright © Linux教程網 All Rights Reserved