您的位置:首页 > 其它

mplayer安装、移植及使用

2013-08-19 17:49 387 查看
mplayer安装、移植及使用

1 mplayer在linux平台上的安装

本例测试时用的的编译环境:

软件平台:Red Hat Enterprise Linux 5(或该系统在虚拟机中)

硬件平台:pc机

编译链接工具:gcc 版本 4.1.2

本例测试时用的的运行环境:

软件平台:Red Hat Enterprise Linux 5(或该系统在虚拟机中)

硬件平台:pc机

本例中操作的用户为超级用户,并且假设以“#“号表示命令提示符。

1.1 下载需要的软件包

主程序安装包:进入网站http://www.mplayerhq.hu/MPlayer/,点击releases/ 进入该下载目录中,下载自己要下载的版本,在这里下载的是MPlayer-1.0rc2.tar.bz2。

code包:需要下载两个包,进入如上网站,点击releases/,然后再点击codecs/进入该下载目录中,下载自己要下载的版本,在这里下载的是all-20071007.tar.bz2和windows-all-20071007.zip。(注意:一般情况下这两个版本号需要一致)

安装皮肤需要的包:进入如上网站,点击skins/ 进入该下载目录中,下载自己要下载的版本,在这里下载的是Abyss-1.7.tar.bz

字体包:进入如上网站,点击releases/,然后再点击fonts/ 进入该下载目录,下载自己需要下载的字体包,在这里下载的是font-arial-cp1250.tar.bz2

在这里假定将这些软件包都放在目录/home/mplayer中

1.2 进行安装(切换到超级用户)

确定安装路径

可以根据自己的需要,选择自己的安装路径,在本例中的安装路径为/usr/local/custom_install/mplayer/

如果没有custom_install目录,需要进行如下操作创建custom_install目录:

#cd /usr/local/

#mkdir custom_install

然后进行如下操作创建mplayer目录:

#cd /usr/local/custom_install/

#mkdir mplayer

安装code

首先确定code包的存放目录,code包一般需要两个存放目录codecs和wincodecs,并且一般将这两个目录放在/usr/lib/路径中,在这里为了保持该软件的独立性将这两个目录放在/usr/local/custom_install/mplayer/lib/路径中,

执行如下操作目录下新建相关目录

#cd /usr/local/custom_install/mplayer

#mkdir lib

然后解压缩刚下载的code包到刚刚新建的lib目录中,需要进行如下操作

#cd /home/mplayer/

#tar -jxv -f all-20071007.tar.bz2 -C /usr/local/custom_install/mplayer/lib/

#unzip windows-all-20071007.zip -d /usr/local/custom_install/mplayer/lib/

安装mplayer主程序

首先解压缩mplayer安装包,执行如下操作进行解压缩:

#tar -jxv -f MPlayer-1.0rc2.tar.bz2

生成配置文件,执行如下操作:

#cd /home/mplayer/MPlayer-1.0rc2

#./configure --prefix=/usr/local/custom_install/mplayer --enable-gui --enable-freetype --enable-menu --codecsdir=/usr/local/custom_install/mplayer/lib/all-20071007 --win32codecsdir=/usr/local/custom_install/mplayer/lib/windows-all-20071007 --language=zh_CN

//=========================================================

//---------------------------------------------------------------------------------------------------

上面的相关参数意义如下

--prefix=/usr/local/custom_install/mplayer 安装路径

--enable-gui 安装图形化界面

--enable-menu 安装菜单界面

--codecsdir=/usr/local/custom_install/mplayer/lib/all-20071007 指定编解码库的存放路径

--win32codecsdir=/usr/local/custom_install/mplayer/lib/windows-all-20071007
指定Windows DLL的存放路径

--language=zh_CN 中文

//---------------------------------------------------------------------------------------------------

//=========================================================

执行如下操作进行编译链接

#make (本步骤花费时间较长)

执行如下操作进行安装

#make install

执行完之后,mplayer主程序就安装完成,这时在目录/usr/local/custom_install/mplayer/bin/中就会出现gmplayer、mencoder、mplayer三个程序,其中mplayer为主程序,gmplayer用于打开mplayer的图形界面。

//=========================================================

//---------------------------------------------------------------------------------------------------

说明: 1.在执行./configure命令步骤时,可以通过执行命令#./configure --help查看相关参数

2.可以执行#make distclean进行清除

3.安装完后可以执行命令#make uninstall进行卸载

//---------------------------------------------------------------------------------------------------

//=========================================================

安装皮肤

执行如下操作:

#cd /usr/local/custom_install/mplayer/

#mkdir skins

#cd /home/mplayer

#tar -jxv -f Abyss-1.7.tar.bz2

#mv Abyss /usr/local/custom_install/mplayer/share/mplayer/skins/

#cd /usr/local/custom_install/mplayer/share/mplayer/skins/

#ln -s Abyss default

安装字体

可以直接从linux字体目录中复制已有的字体文件,也可以从windows系统的字体目录中复制已有的字体文件,还可以在网上下载,在这里选择从linux系统的字体目录中复制。

对于从linux系统中复制,执行如下操作

#cp /usr/share/fonts/chinese/TrueType/uming.ttf /root/.mplayer/subfont.ttf

对于从windows系统中复制,打开C:\WINDOWS\Fonts目录,然后将里面自己想要的字体文件复制到linux系统中的/usr/local/custom_install/mplayer/目录中,并将其名称改为subfont.ttf

注意:1.上面的chinese根据系统安装时的不同,其名称也不同,例如也可能是zh_CN

2.也可以复制字体目录中的其它.ttf文件,但粘贴后的名称都是subfont.ttf

添加执行路径到环境变量PATH

为了以后该播放器的使用方便,可以将路径/usr/local/custom_install/mplayer/bin添加到执行文件查找路径的环境变量中,进行如下操作:

#gedit /etc/gedit bashrc

然后在该该文本文件的最后一行添加如下语句export PATH=$PATH:/usr/local/custom_install/mplayer/bin,这样系统每次启动后,都会执行该语句添加执行文件查找路径

执行如下命令,是刚才的添加的执行路径立即生效:

#source /etc/bashrc

这样就可以不用写路径名,直接在终端执行mplayer命令或gmplayer命令播放媒体文件

创建桌面快捷方式

在linux系统的桌面中,鼠标右击选择创建启动器,出现一个“创建启动器”的窗口,在该窗口中,

类型:应用程序;

图标:设置一个自己喜欢的图标;

名称:在这里设为gmplayer;

注释:可有可无;

命令:可以设为/usr/local/custom_install/mplayer/bin/gmplayer,如果已经将gmplayer所在的目录路径添加到了PATH环境变量中,还可以直接设为gmplayer;

最后确定完成添加,就会在桌面生成一个名称为gmplayer的图标,这样就可以在桌面直接通过鼠标打开gmplayer软件,图标如下。



添加到桌面上方应用程序的下拉菜单中

在桌面的上方的应用程序右击选择编辑菜单,在这里我将gmplayer软件添加到了影音子菜单中,因此先选择左侧的影音,再在右侧点击新建项目,在新出现的窗口中,

图标:设置一个自己喜欢的图标;

名称:在这里设为gmplayer;

注释:可有可无;

命令:可以设为/usr/local/custom_install/mplayer/bin/gmplayer,如果已经将gmplayer所在的目录路径添加到了PATH环境变量中,还可以直接设为gmplayer;

在终端运行命令:不选

最后确定完成添加,就会在桌面上方的应用程序下拉菜单的影音子菜单中生成gmplayer软件,这样就可以在桌面上方的应用程序下拉菜单的影音子菜单中直接通过鼠标打开gmplayer软件。

gmplayer打开的截图如下:



至此,mplayer在linux的平台的整个安装过程完成。

2 mplayer移植到arm linux嵌入式系统中

本例测试时用的的编译环境:

软件平台:Red Hat Enterprise Linux 5(或该系统在虚拟机中)

硬件平台:pc机

交叉编译链接工具:arm-linux-gcc version 4.2.2

本例测试时用的的运行环境:

软件平台:linux2.6内核

硬件平台:arm11(s3c6410)

本例中操作的用户为超级用户,并且假设以“#“号表示命令提示符。

2.1 下载需要的软件包

主程序安装包,进入网站http://www.mplayerhq.hu/MPlayer/,点击releases/ 进入该下载目录中,下载自己要下载的版本,在这里下载的是MPlayer-1.0rc2.tar.bz2。

MP3解码库,进入网站http://www.underbit.com/products/mad/,点击右侧Download下面的SourceForge,然后选择下载,在这里下载的是libmad-0.15.1b.tar.gz。

在这里假定将这些软件包都放在目录/home/mplayer中

2.2 移植mplayer到arm linux中

确定安装路径(切换到超级用户)

可以根据自己的需要,选择自己的安装路径,在本例中的安装路径为/usr/local/custom_install_arm/mplayer/,libmad库的存放路径为/usr/local/custom_install_arm/libmad/

如果没有custom_install目录,需要进行如下操作创建custom_install_arm目录:

#cd /usr/local/

#mkdir custom_install_arm

然后进行如下操作创建mplayer目录:

#cd /usr/local/custom_install_arm/

#mkdir mplayer

生成libmad库

MPlayer自带有一套MP3解码库mp3lib,mplayer的mp3解码默认使用的是mp3lib,但是mp3lib用的是浮点运算, 有的arm芯片没有浮点协处理器例如ARM9,而libmad是基于定点运算解码MP3格式音频文件的解码库,因此需要用libmad代替mp3lib。

首先解压缩libmad-0.15.1b.tar.gz压缩包,执行如下操作

#cd /home/mplayer/

#tar -zxv -f libmad-0.15.1b.tar.gz

然后执行如下操作进行编译安装

#cd /home/mplayer/libmad-0.15.1b

#./configure --host=arm-linux CC=arm-linux-gcc --enable-fpm=arm --enable-static --disable-shared --disable-debugging --prefix=/usr/local/custom_install_arm/mplayer

如果将参数--enable-static --disable-shared去掉的话,libmad库安装完成之后,除了静态库文件还会生成动态文件。

#make

#make install

这步完成之后,就会在--prefix所指的目录中生成include和lib两个目录,在目录include中生成mad.h文件,在目录lib中生成libmad.a和libmad.la静态库文件。

生成mplayer可执行程序

执行如下操作

#./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-linux --enable-static --enable-fbdev --enable-libavcodec_a --enable-mad --disable-mp3lib --disable-win32dll --disable-mencoder --disable-ivtv --disable-live --disable-dvdnav --disable-dvdread
--disable-dvdread-internal --disable-libdvdcss-internal --language=zh_CN --with-extraincdir=/usr/local/custom_install_arm/mplayer/include --with-extralibdir=/usr/local/custom_install_arm/mplayer/lib --prefix=/usr/local/custom_install_arm/mplayer 2>&1
| tee logfile

//=========================================================

//---------------------------------------------------------------------------------------------------

上面的相关参数意义如下

--cc=arm-linux-gcc 指定交叉编译器,如果没添加到环境变量,就要指定arm-linux-gcc的完整路径

--target=arm-linux 指定目标系统,等号后边的值的可以看出由三部分组成,第一部分是硬件体系架构,在这里是arm体系架构;第二部分是该体系架构的的具体版本,例如armv4l,并且这个版本名称一定要跟libavcodec目录下的平台目录名一致,否则为这个平台的优化代码没办法编译进去;第三部分是系统平台,在这里是linux。但是mplayer在rc2及以后的版本中,只需要--target=arm-linux这样指定就好了。

--enable-static 设定为静态编译,这样就会将所有需要的库文件和mplayer主程序一块编译成一个可执行文件,这样就可以不用移植动态编译时的所需动态库文件,只许将mplayer文件复制到目标系统中,就可以直接运行,不需要其它的动态库文件,在本例中使用静态编译。

--enable-fbdev 打开framebuffer支持

--enable-libavcodec_a 启用静态的libavcodec解码

--enable-mad和--disable-mp3lib 启用libmad库,禁用mp3lib库

--disable-win32dll 禁用win32动态链接库支持

--disable-live 禁用流媒体

--disable-dvdnav --disable-dvdread --disable-dvdread-internal --disable-libdvdcss-internal 禁用dvd相关功能,我们不会再板子上看DVD,因此可以将dvd相关的功能全部disable掉

--with-extraincdir=/usr/local/custom_install_arm/mplayer/include 指定使用外部库需要的头文件路径

--with-extralibdir=/usr/local/custom_install_arm/mplayer/lib 指定使用外部库需要的库文件路径

--prefix=/usr/local/custom_install_arm/mplayer 指定安装路径

2>&1 | tee logfile 将标准输出和错误输出输出在终端的同时输出到logfile文件中

//---------------------------------------------------------------------------------------------------

//=========================================================

然后执行如下操作

#make

执行时有可能会出错,此时需要在mplayer主程序源码目录中的./libavcodec/armv4l/dsputil_arm_s.S和./libmpeg2/motion_comp_arm_s.S汇编文件的最开始添加如下几行,这段代码意思是定义一个空的ARM汇编宏pld,这样当代码出现pld指令,就变成一条空指令,这样执行再次执行上面的make命令应该就可以编译通过。

#ifndef HAVE_PLD

.macro pld reg

.endm

#endif

注意:上面这几行中的这两个#是在汇编文件中的伪指令,不表示命令提示符

上面的命令正确完成之后,就会在mplayer主程序源码目录生成可以在arm linux目标系统中运行的可执行程序mplayer文件。

最后,执行如下操作,如果是静态编译,则该步骤可以不用执行,因为执行make静态编译时,已经生产可以独立在arm linux中运行的可执行文件mplayer。

#make install

该命令执行时可能会出现“install: strip failed”之类的错误,但是此时也是还会在目录中/usr/local/custom_install_arm/mplayer/bin/中生成可执行性程序mplayer文件。对于本例中的该问题,可以不解决,因为目录中/usr/local/custom_install_arm/mplayer/bin/生成的mplayer文件已经可以正常使用,若需要解决该问题,则需要在mplayer主程序源码目录中的Makefile文件中的install部分前面加入

INSTALLSTRIP := #

将其置空即可,然后在重新执行上述命令,mplayer就会在目录/usr/local/custom_install_arm/mplayer/中安装成功。

//=========================================================

//---------------------------------------------------------------------------------------------------

说明: 1.在执行./configure命令步骤时,可以通过执行命令#./configure --help查看相关参数

2.可以执行#make distclean进行清除

3.安装完后可以执行命令#make uninstall进行卸载

4.如果该mplayer的版本rc4,则其./configure命令的参数选项中,不支持--with-extraincdir和--with-extralibdir这两个参数,因此需要手动添加libmad库的支持,解决办法如下:第一、将目录/usr/local/custom_install_arm/mplayer中的头文件复制到mplayer主程序源码目录中;第二、将参数--with-extraincdir和--with-extralibdir这两项去掉,执行./configure命令步骤中的命令;第三、修改./configure命令步骤中生成的config.mak文件,在其中找的-lmad字段,在其后空格之后,添加-L
/usr/local/custom_install_arm/mplayer/lib 。然后其它步骤不变

//---------------------------------------------------------------------------------------------------

//=========================================================

将生成的mplayer文件移植到arm linux系统中

对于本例,因为是静态编译,生成的mplayer文件可以在arm linux系统中独立运行不依赖与其他库,因此可以直接将mplayer文件复制到arm linux的文件系统中,执行如下操作,本例中先将mplayer文件放在pc机的windows系统中,然后将mplayer文件从pc机的windows系统传送的arm linux系统的目标板的文件系统中,使用网络传输文件,串口作为控制终端,网络传输需要tftpd32.exe软件,串口控制需要SecureCRT.exe软件,在本例中假设pc机的ip为192.168.1.10,目标板的ip为192.168.1.100。

首先保证pc机和目标板之间的串口以及网络的硬件连接正常;

然后设置pc机的ip为192.168.1.10,打开SecureCRT.exe软件,执行命令#ifconfig eth0 192.168.1.100配置目标板的ip为192.168.1.100,保证pc机和目标板之间可以ping通;

然后打开pc机中windows系统中的tftpd32.exe软件,并且正确配置该软件中的ip和下载目录

然后在SecureCRT.exe软件中执行命令#tftp -g -r mplayer 192.168.1.10;

下载完成之后,如果该mplayer文件没有执行权限需要执行命令#chmod a+x mplayer 添加执行权限,这样就可以在目标板中使用mplayer播放其中的相关媒体文件了。

至此,mplayer向arm linux嵌入系统中的整个移植过程完成。

3 mplayer的使用

mplayer在命令模式下的使用格式很多,查看Mplayer用户中午手册,可以看到其相关的使用格式如下:

mplayer [选项] [文件|URL|播放列表|-]

mplayer [选项] 文件1 [分选项] [文件2] [分选项]

mplayer [选项] {文件和选项组} [组专用的分选项]

mplayer [dvd|dvdnav]://[标题|[开始标题]-结束标题][/设备] [选项]

mplayer vcd://曲目[/设备]

mplayer tv://[频道][/输入ID] [选项]

mplayer radio://[频道|频率][/捕捉设备] [选项]

mplayer pvr:// [选项]

mplayer dvb://[卡号@]频道 [选项]

mplayer mf://[文件掩码|@列表文件] [-mf 选项] [选项]

mplayer [cdda|cddb]://曲目[-结束曲目][:速度][/设备] [选项]

mplayer cue://文件[:曲目] [选项]

mplayer [file|mms[t]|http|http_proxy|rt[s]p|ftp|udp|unsv|icyx|noicyx|smb]:// [用户名:密码@]URL[:端口] [选项]

mplayer sdp://文件 [选项]

mplayer mpst://主机[:端口]/URL [选项]

mplayer tivo://主机/[list|llist|fsid] [选项]

gmplayer [选项] [-skin 外观模板]

mencoder [选项] 文件 [文件|URL|-] [-o 文件 | file://文件 | smb://[用户名:密码@]主机/文件路径]

mencoder [选项] 文件1 [分选项] [文件2] [分选项]

本例将讨论mplayer在命令模式中的常用用法和技巧。

3.1 常用的命令参数选项使用用法

使用帮助

#mplayer --help

播放文件
(1) mplayer播放媒体文件最简单的使用方式如下

#mplayer file

mplayer会自动检测文件的类型并播放该文件,如果是音频文件,则会在命令行模式中显示该文件的播放信息;如果是视频文件,则会打开一个新的播放窗口。

指定字幕文件(视屏文件)

#mplayer -sub title_file file

循环播放

#mplayer -loop number file

-loop指循环播放,number指定循环播放的次数,如果number为0表示无限循环播放

指定播放速度

#mplayer -speed number file

使用参数-speed时,则其后面的参数因子即number的大小作为正常播放速度的倍数,num的取值范围为0.01-100

指定播放的采样速率

#mplayer -srate Hz file

将视频文件中的音频部分输出为wav文件

#mplayer -ao pcm [:file_name.wav] file

[ ]表示可以没有,如果没有:file_name.wav,则输出的wav文件名称默认为audiodump.wav

将视屏文件中的视频部分输出为一系列图片

#mplayer -vo <jpeg | ppm | png | tag> file

jpeg | ppm | png | tag 指定输出图片的格式,使用时,选择这几种格式的一种

指定视频文件播放的宽高比

#mplayer -aspect <宽高比>

-aspect表示重载播放视频文件的宽高比,宽高比的值可以是“:”形式和浮点数的形式,例如16:9 1.7777 和 4:3 1.3333

播放列表

可以将所有要播放的文件放在一个文本文件中,每个文件占一行,就可以将该文件作为mplayer的播放列表文件使用,使用格式如下

#mplayer -playlist list_file file

参数-playlist表示根据播放列表文件list_file中的文件列表进行播放

音量控制

(1)#mplayer -af volume[=v[:sc]] file

参数-af为音频过滤器选项,子选项volume表示实现对音频流幅值的等比伸缩(小于100%压缩,大于100%放大),实现音频的默认软件音量的控制,即volume后面的v为设置所有声道中流所需的增益分贝(dB),其范围是-200到60,默认值是0 ,-200相当于0%,60相当于100%;volume后面的sc表示软件切打开或关闭,0表示关闭,1表示打开,软剪切能使得播放的声音更加平滑流畅。

该功能是通过伸缩音频编码流幅值的方式达到控制软件音量的效果,并没有改变硬件音量的设置,并且播放过程中过滤的百分比不会变化,而播放音量是由硬件混音器输出音量和音频编码流幅值的等比伸缩即软件音量共同控制,因此如果软件音量值设置的很小,在播放过程中通过按0增加硬件混音器的音量值到很大值,但播放出来的音量却可能比较小。

还有该功能选项是立即生效,并且可能会产生失真。

(2)#mplayer -softvol -softvol-max <10.0-10000.0> file

参数-softvol表示锁定软件混音,而不使用声卡混音,其子选项-softvol-max表示设置最大扩音级别,默认值为110,以百分比为单位。

该功能选项以当前音频流幅值即软件音量值为基数,设置音频流幅值的伸缩比例的最大值即软件音量的最大值,参数-softvol-max后面的百分比值代表为该基数的倍数,以已经设置的软件音量值 乘以 倍数 作为新的最大音量值。

该功能选项使用之后,播放过程中调整音量都是以该最大音量值作为软件音量值的100%,并且使用0或9改变音量时设置的不再是硬件音量而是软件音量,因此设置的值在该播放关闭后不会保存。并且新设置的软件音量最大值会立即生效,但软件音量值不会立即生效,只有播放之后按0才会生效。软件音量值生效之后,当-softvol-max后面的值小于100即小于100%时,则设置的最大值小于当前已经设置的软件音量,该功能选项生效之后,就会以新的最大值做为当前软件音量;当-softvol-max后面的值大于100即大于100%时,则设置的最大值大于当前已经设置的软件音量,该功能选项生效之后,当前软件音量值不变,但是因为当前软件音量值已经变大,因此当前软件音量值在软件音量最大值中所占的百分比就会变小。

(3)#mplayer -af volume[=v[:sc]] -softvol -softvol-max <10.0-10000.0> file

将前两种方法结合起来。

3.2 交互式控制

在mplayer的命令模式中,本例所说的交互式控制主要是在播放过程中通过键盘按键控制mplayer的播放,并且对于该交互式控制,mplayer有一个完全可配的命令驱动的控制层,可以通过-input选项重新配置,下面讨论一下mplayer默认的键盘交互式控制。

+ 和 - 调整音频延迟 增加 / 减少 0.1秒

( 和 ) 调整有利于 左 / 右 声道的声音平衡

a 切换对齐字幕: 上 / 中 / 下

d 循环切换丢帧状态

f 打开窗口时,切换全屏

F 切换显示 "锁定的字幕"

I 用 OSD 显示文件名

j 循环可用的字幕

m 静音切换

o 循环切换osd状态

p 和 space 都表示暂停或取消暂停

q 和 Esc 都表示停止播放并退出

r 和 t 上/下调整字幕位置

T 打开窗口时,切换顶置

v 切换显示字幕

x 和 z 调整字幕延迟增加/减少 0.1 秒

y 和 g 在字幕列表中步进 / 步退

1 和 2 调整对比度。

3 和 4 调整亮度。

5 和 6 调整色调。

7 和 8 调整饱和度。

9 和 0 减小 / 增大 音量

/ 和 * 减小 / 增大 音量

left 和 right 后退 / 快进 10秒

up 和 down 快进 / 后退 1分

Page Up 和 Page Down 快进 / 后退 10分

[ 和 ] 减少 / 增加 当前回复速度 10%

{ 和 } 减半 / 加倍 当前回复速度

. 步进,按一下暂停回放,每按一下就播放一帧,直到按其它键取消步进

backspace 重置到正常回放速度

Enter 在播放列表中快进甚至越过末尾

< 和 > 在播放列表中后退 / 快进

Home 和 End 下一个 / 前一个 父列表播放树项

Insert 和 Delete(仅用于ASX播放列表) 下一个 / 前一个 供选择的源

4 附录

相关网站

(1)http://www.mplayerhq.hu/design7/news.html mplayer官网

(2)http://www.mplayerhq.hu/MPlayer/ mplayer相关下载的一个网站

(3)http://www.underbit.com/products/mad/ madplay、libmad、libid3tag相关下载的一个网站网站

参考数据

MPlayer用户中文手册(保存在自己的csdn网盘中)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: