mplayer安装和移植

时间:2022-10-15 16:35:26

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中对这些命令有详细的解析。