Linux MPlayer编译与安装

使用自带的totem基本上都无法播放视频,各种格式都不支持,令人无语。想到了MPlayer,为了看片,决定编译安装,过程真的是折腾。如图是自带的Totem播放提示,安装了解码还是无法播放,反正要找其他播放器了,也没兴趣去管他是什么原因。

image

需要用到的东西在MPlayer官网上都有,就一个页面可以把所有东西都下载好http://mplayerhq.hu/design7/dload.html

0x01 准备工作

image

使用svn方式获取获取源码命令

svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

image

会在当前目录生成mplayer目录,再进入mplayer执行svn update更新svn,更新成功后显示”At revision”,至此获得了源码

另外需要下载解码包(Binary Codec Packages),解压到指定目录,默认的就是/usr/local/lib/codecs,当然可以在编译选项里面更改。

tar -xaf essential-amd64-20071007.tar.bz2
mkdir /usr/local/lib/codecs
cp essential-amd64-20071007/* /usr/local/lib/codecs

image

mplayer源码安装的时候需要yasm编译器,我在pkgs.org找到的,也把它下载下来,安装后就几个文件而已。

image

image

至此,准备工作完成,源码、解码包、yasm编译器都有了,另外源码安装必须的编译工具就不多说了,yum grouplist中把Development那两个装上就好了

yum groupinstall "Development tools"

yum groupinstall "Development Libraries"

0x02 编译安装

./configure --[options]

常用选项:
--prefix=/usr/local/mplayer 是安装路径
--enable-gui 安装图形化用户界面
--enable-freetype 调节字体
--with-codecsdir=/usr/lib/codecs/
--with-win32libdir=/usr/lib/wincodecs 指定解码位置
--language=zh_CN 中文

这里我直接进入mplayer目录,执行./configure --enable-gui --language=zh_CN

这里需要等待一小段时间自动下载组件

image

0x03 问题来了

第一个问题出现:“The GUI requires X11”

image

检查上面的各种checking希望能看到蛛丝马迹,发现关于X11的两个checking都是显示”…no”

image

yum search X11 看看有什么能用的,抱着试试看的心态安装了libX11两个包

yum install libX11-devel libX11

然后再来./configure一次,发现其中一个变为了yes了

image

再来百度发现GUI可能和gtk有关,但是他们普遍的错误都是“Error: X11 support required for GUI compilation”,而不是我的“The GUI requires X11”

也是摸石头过河的心态,安装了再说,又装了gtk的两个包,终于有两个yes

[[email protected] mplayer]# yum install gtk+-devel gtk+

image


安装好了gtk之后就引发了第二个问题,需要gtk2,如图:

image

需要就安装呗,可是安装不成功,现存的软件包版本太低,主要就是mesa-private-llvm和libdrm这两个的问题,这里也就折腾了。还有个值得注意的是看看同一软件包不同的版本,一个是el7,一个是el6. ,也是好几回下来才发现的

image

安装libdrm的时候就有问题了,2.4.59.el6和旧版本2.4.50.el7的三个文件冲突,yum源下载到本地用rpm安装,rpm有个--force暴力选项。可以发现不用--force还是无法安装,不管怎样先把安装包弄上再说。 

  image

  解决了上面两个包的问题之后再来yum install gtk2-devel

image

又发现装gtk2时为解决依赖附带安装的mesa-dri-drivers-10.4.3安装不上,因为和系统现存的mesa-libglapi包所拥有的libglapi.so.0.0.0冲突(下载包并查看rpm –qlp mesa-dri-drivers-10.4.3发现果然有一个同名的文件,蛋疼的是系统存在的mesa-dri-drivers-9.2.5版本却没有这个文件,看来是软件包版本升级新增的)。

image

那么现在怎么处理呢。再来手动安装看看什么情况,又依赖于mesa-dri-filesystem、mesa-dri1-drivers两个包。试下yum看能否一次性解决。image

可惜的是其中一个依赖包又报错了,单独安装,说小于7.12的版本已被废弃。

image

真心感觉没完没了,直接强制安装。

rpm --nodeps -ih mesa-dri1-drivers-7.11-8.el6.x86_64.rpm

rpm --force -ih mesa-dri-drivers-10.4.3-1.el6.x86_64.rpm

然后惊奇地发现gtk2-devel可以安装成功了

乱起八糟的依赖看到都头晕了,画了个图来总结gtk2-devel的折腾过程

image

当然解决依赖问题的时候你的源要配置好,我的Centos7里面只配置了epel和光盘的本地源


0x04 编译安装成功

总算可以好好执行./configure --enable-gui --language=zh_CN

image

make install(卸载的话就make uninstall) 就看到各个目录和可执行文件的创建。

image

0x05 后续

好不容易安装好,在图形桌面左上角Application菜单打开提示,这是没有下载皮肤导致只能从命令行启动

image

官网上下载皮肤

image

wget http://www.mplayerhq.hu/MPlayer/skins/XXXXXXXXXXXX

解压tar -xf XXXXXXXXX

解压后的文件夹复制到默认皮肤目录

image

因为播放器默认是找default的,那就在当前目录创建个连接,命名为default。从图形界面打开后就可以自行切换皮肤。

cd /usr/local/share/mplayer/skins/
ln -s <皮肤目录>/ default


命令行安装yasm

# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz # tar zxvf yasm-1.3.0.tar.gz # cd yasm-1.3.0 # ./configure # make && make install