1. 程式人生 > >mplayer安裝和移植

mplayer安裝和移植

X86的LINUX上已經自帶了解碼庫,不需要另外安裝解碼庫,而arm平臺自己做的檔案系統沒有解碼庫,需要另外安裝解碼庫

下載:   

MPlayer: MPlayer-1.0rc2.tar.bz2

解碼庫: libmad-0.15.0b.tar.gz

、在X86的LINUX上安裝mplayer

1、把MPlayer-1.0rc2.tar.bz2放LINUX純目錄下解壓,並進到該目錄下。

#tar jxvf MPlayer-1.0rc2.tar.bz2

#cd MPlayer-1.0rc2

2、配置

#./configure --enable-mencoder (--disable-ivtv)

3、#make

注:安裝 mplayer1-0rc2 ./configure通過了, 但make出現問題:
vo_ivtv.c:79: error: storage size of 'sd' isn't known
vo_ivtv.c:80: error: storage size of 'sd1' isn't known
vo_ivtv.c:84: error: 'IVTV_STOP_FL_HIDE_FRAME' undeclared (first use in this function)
vo_ivtv.c:84: error: (Each undeclared identifier is reported only once
vo_ivtv.c:84: error: for each function it appears in.)
vo_ivtv.c:87: error: 'IVTV_IOC_STOP_DECODE' undeclared (first use in this function)
vo_ivtv.c:97: error: 'IVTV_IOC_START_DECODE' undeclared (first use in this function)
vo_ivtv.c:80: warning: unused variable 'sd1'
vo_ivtv.c:79: warning: unused variable 'sd'
make[1]: *** [vo_ivtv.o] Error 1
make[1]: Leaving directory `/root/mplay/MPlayer-1.0rc2/libvo'
make: *** [libvo/libvo.a] 錯誤 2

解決方法:在./configure 的時候加個選項(--disable-ivtv

4、#make install

安裝完後,此時在MPlayer-1.0rc2目錄下會生成可執行檔案mplayer mencoder.其中mencoder是錄屏時用到
把它們拷貝到/bin/目錄下。要執行時:
#/bin/mpalyer /路徑/要播放的媒體檔名;
#/bin/mplayer a.mp3

二、移植mplayer到arm平臺的LINUX上(使用4.3.2編譯器)

在之前的部落格已經提到如何在linux安裝了交叉編譯器,安裝目錄是在/usr/local/arm/4.3.2/。

1、配置安裝libmad (如果不先配置安裝libmad,則在make mplayer時出現找不到mad.h 錯誤)

       (1)#./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/usr/local/arm/4.3.2/lib CC=arm-linux-gcc

(2)#make

    因為我使用的是高版本的 arm-linux-gcc-4.3.2 編譯器, make 時出現了“ cc1: error: unrecognized     command line option "-fforce-mem" ”錯誤,這是因為這個高版本的 gcc 沒有 "-fforce-mem" 引數,解決的             辦法是在 Makefile 裡面查詢 "-fforce-mem" ,將其刪除即可 make 通過。

      (3)#sudo make install  

   此時會在/usr/local/arm/4.3.2/lib/目錄下生成include目錄和lib目錄。
   其中liclude目錄下有檔案 mad.h
   lib 目錄有檔案 libmad.a libmad.la

2、配置安裝mplayer

(1)#./configure --enable-mencoder --host-cc=gcc --cc=arm-linux-gcc --target=arm-linux --enable-static --enable-ossaudio --prefix=/tmp/mplayer-rc2 --disable-win32dll --disable-dvdread --enable-fbdev --enable-mencoder --disable-live --disable-mp3lib --enable-mad --enable-libavcodec_a --disable-armv5te --disable-armv6 --with-extraincdir=/usr/local/arm/4.3.2/lib/include --with-extralibdir=/usr/local/arm/4.3.2/lib/lib

引數解析:
--host-cc=gcc         # C compiler for tools needed while building [gcc]
--cc=arm-linux-gcc    #C compiler to build MPlayer [gcc]
--target=arm-linux    #target platform (i386-linux, arm-linux, etc)
--enable-static       #build a statically linked binary
--enable-ossaudio     #enable OSS audio output [autodetect]
--prefix=/tmp/mplayer-rc2  #prefix directory for installation  [/usr/local]
--disable-win32dll      # disable Win32 DLL support [enabled]
--disable-dvdread      #disable libdvdread [autodetect]
--enable-fbdev        #enable FBDev video output [autodetect]
--disable-mencoder     #disable MEncoder (A/V encoder) compilation [enable]   不使能編碼器編輯
--disable-live       #disable LIVE555 Streaming Media [autodetect]  讓Mpalyer不支援流媒體協議
--disable-mp3lib     # disable builtin mp3lib [enabled]
--enable-mad         #disable libmad (MPEG audio) support [autodetect]
--enable-libavcodec_a  #disable static libavcodec [autodetect]
--disable-armv5te       #disable DSP extensions (ARM) [autodetect]
--disable-armv6         #disable ARMv6 (ARM) [autodetect]
--with-extraincdir=/usr/local/arm/4.3.2/lib/include    #指明mad.h檔案所在路徑
--with-extralibdir=/usr/local/arm/4.3.2/lib/lib        #指明limad相關連結庫所在路徑

(2)#make

其中會出現很多下面錯誤:
armv4l/dsputil_arm_s.S:79:Error:....‘pld[r1]’
錯誤原因是pld指令只是在armv5te以上版本有效,在(armv41)無效。
修改/MPlayer-1.0rc2/libavcodec/armv4l/dsputil_arm_s.S檔案和
/mplayer/MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S 檔案,在前面新增上:
  #ifndef HAVE_PLD
  .macro pld reg
  .endm
 #endif

(3)#make install(出現提示不認識的檔案。因為是ARM平臺執行的檔案,所以不認識)

install -m 755 -s mplayer /tmp/mplayer-rc2/bin
    strip: Unable to recognise the format of the input file `/tmp/mplayer-rc2/bin/mplayer'

   安裝完後,此時在MPlayer-1.0rc2目錄下會生成可執行檔案mplayer  mencoder。

把它們拷貝到平臺的/bin/目錄下。要執行時:

  #/bin/mplayer -ac mad a.mp3

三、MPlayer slave命令
在命令中新增 -slave 和 -quiet就可以通過命令設定Mplayer實現相應的功能。在mplayer原始碼中的,
/DOCS/tech/slave.txt中對這些命令有詳細的解析。