zoukankan      html  css  js  c++  java
  • 在windows上用源代码编译安装MPlayer

    作者:心情花园
     
    1、本文遵循GPL/LGPL协议,欢迎自由转载,但请注明作者出处。

    2、本文首发赢政。由于在那里被问到了几个MPlayer的问题,上网查了一下,发现关于Windows版MPlayer的文章较少,即使是官方中文文档(http://www.mplayerhq.hu/DOCS/HTML/zh/documentation.html),也侧重于Linux平台的安装使用。于是结合自己的使用经验写了一篇Windows平台下使用源代码编译MPlayer的帖子,在文章末尾简略的提了一下MPlayer命令行及GUI的使用。见笑了。

    3、Mplayer一段时间以来一直称得上Linux平台媒体播放软件的王者,其Windows移植版同样出色。但是最近Mplayer的日子过得挺尴尬。先是在Linux(KDE)平台上被媒体播放器的新贵Kaffeine 一通穷追猛打,然后又和自己的子项目FFmpeg一起惹上了莫名其妙的版权官司。(http://www.mplayerhq.hu/homepage/index.html)虽然目前Mplayer 开发工作仍在正常进行,但前途依然是个未知数。作为一个Mplayer 的忠实拥护者,我只能默默地祈祷它一路走好!

    4、本文主要参考文档:http://www4.mplayerhq.hu/MPlayer/releases/...MinGW-Howto.txt
    5、我的机器是NorthWood的赛扬2.0,winxp sp2 ,从编译过程来讲,A贩们的U和其他windows操作系统应该大同小异。

    6、时间仓促,错漏难免,敬请批评指正,谢谢!
     
    一、一般在Windows平台使用MPlayer的人大都会选择 KK编译版,相当出色和好用的版本,那么为什么还要费时费力地从源代码编译安装MPlayer?嘿嘿,我想有几个理由吧:

    1、命令行下执行MPlayer.exe你会发现,Mplayer的windows发行版默认都只是针对MMX和MMX2指令集进行的编译(如图),而它的源代码还支持SSE,SSE2,3DNOW!和3dnow-dsp!指令集,如果你有一颗比较新的CPU,通过编译源代码加入对以上几个指令集的支持,以达到更好的效果和更低的资源占用,是一件比较爽的事情。
     
     
    2、自己编译的MPlayer可以自定义一些性能选项。比如说,默认的MPlayer并不支持2GB以上的单个文件,这就是为什么有人使用MPlayer播放HDTV影片其效果相当糟糕的原因。 你可以通过自己编译加上对它的支持。

    3、MPlayer每天都会根据前一天的工作发布一个CVS的完整源代码包,只要你喜欢,每天你都可以编译一个最新的版本——你可以品尝到MPlayer最新的性能——当然,也可能包括最新的bug

    4、通过编译安装,除了打造完全适合自己机器的软件外,还能多学一点电脑知识。

    5、好玩。

    如果以上五个理由没有打动你,那你就不要编译安装了,老老实实的下载上面提到的KK版,也是相当好用的。
     
    二、安装前的准备工作

    1、别看我们说是在windows下编译安装MPlayer,但是win自身并不提供相关工具。我们还需要安装两个软件,去 http://www.mingw.org/download.shtml 下载MinGW-3.2.0-rc-3.exe和MSYS-1.0.10.exe ,首先双击安装MinGW-3.2.0-rc-3.exe,这个和普通的win程序安装没什么区别,一路next就可以搞定;然后双击安装MSYS- 1.0.10.exe,这个在安装结束的时候会弹出对话框:"Do you wish to continue with the post install? [yn ]"选y后,又会弹出一个"Do you have MinGW installed? [yn ]" 也是选y,然后让你给出MinGW的安装路径,如果是默认的话应当填C:/mingw(注意用“/”而不是“\”)安装结束后会在桌面生成一个MSYS的图标,双击即可执行。

    MinGW 和MSYS究竟是干什么用的?呵呵,我一直都把它们理解为Linux部分工具软件和库+shell命令行的Windows移植版。为了写这篇文章专门搜了一下,原来MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。——反正就你能看见的部分来说,它就是一个类Unix/Linux的命令行式的软件编译环境。

    2、下载dx7的头文件(http://www.mplayerhq.hu/MPlayer/releases/w.../dx7headers.tgz
    解压后把里面的全部文件复制到(c:\mingw\include)

    附件是我自己弄的最新的DX9 headers,效果没什么大的区别,喜欢尝鲜的可以试一下——但是不能保证质量。使用方法和上面的dx7的头文件相同。(两者只能选其一)

    附加文件
    附加文件  DX9Cheaders.rar ( 351.5k )
     
    三、开始下载安装一些MPlayer编译所依赖的软件和lib等东东

    1、freetype(OSD字幕用)

    软件主页:http://www.gnu.org/software/libiconv/

    需要文件:libiconv-1.9.1.tar.gz

    这个文件和下面提到的文件在windows下都可以使用WinRAR解压。解压后把libiconv-1.9.1目录放在,比如说C盘下面,然后双击打开MSYS,输入

    cd C:\ libiconv-1.9.1

    注:打开libiconv-1.9.1目录,也可以按需要指定其他目录(下同)。回车,然后输入:

    ./configure --prefix=c:/mingw --disable-shared

    注:配置代码命令,其中--prefix=c:/mingw为指定目录命令, --disable-shared为取消共享。回车,等待执行完毕后,输入:

    make

    注:编译命令。回车,等待执行完毕后,输入:

    make install

    注:编译安装命令。

    等待执行完毕后,如果一切顺利,没有报错。那么到此就算完成了一个软件的安装。与下面的各个步骤大同小异,下面我就写的简单一些了。
     
    2、freetype2
    软件主页:http://sourceforge.net/project/showfiles.php?group_id=3157
    需要文件:freetype-2.1.9.tar.bz2
    同上一样,解压,然后
    cd freetype-2.1.9
    make 注:这个软件不需要./configure
    make install

    3、zlib
    软件主页:http://www.gzip.org/zlib/
    需要文件:zlib-1.2.2.tar.bz2
    解压
    cd zlib-1.2.1
    make
    make install

    4、libpng
    软件主页:http://sourceforge.net/project/showfiles.php?group_id=5624
    所需文件:libpng-1.2.8-config.tar.gz
    解压
    cd libpng-1.2.8-config
    ./configure --prefix=c:/mingw --disable-shared
    make
    make install

    5、libjpeg
    软件主页:http://www.ijg.org/
    所需文件:jpegsrc.v6b.tar.gz
    解压
    cd jpeg-6b
    ./configure --prefix=/mingw/ --enable-static
    make
    cp .libs/libjpeg.a c:/mingw/lib/
    cp jpeglib.h jconfig.h jmorecfg.h c:/mingw/include/

    6、libregif
    软件主页:http://armory.nicewarrior.org/projects/libregif/
    所需文件:libregif 4.1.6
    解压
    cd libregif-4.1.5
    ./configure --prefix=c:/mingw
    make
    make install

    7、nasm
    软件主页:http://sourceforge.net/project/showfiles.php?group_id=6208
    所需文件:nasm-0.98.39.tar.bz2
    解压
    cd nasm-0.98.38
    ./configure --prefix=c:/mingw
    make
    mkdir c:/mingw/man/man1
    make install

    8、lame
    软件主页:http://lame.sourceforge.net/download/download.html
    所需文件:lame3.96.1.tar.gz
    解压
    cd lame-3.96.1
    ./configure --prefix=c:/mingw --disable-shared --disable-decoder
    make
    make install

    9、xvid
    软件主页:http://www.xvid.org/downloads.html
    所需文件:xvidcore-1.0.3.tar.bz2 (http://downloads.xvid.org/downloads/)
    这个软件最新的1.1beta版从我的机子上跑的情况来看,似乎对原来版本的兼容性有点问题,大家还是用旧的1.0.3版本的吧。
    解压
    cd xvidcore-1.0.3/build/generic
    ./configure --prefix=c:/mingw --disable-shared
    make
    make install
    mv c:/mingw/lib/xvidcore.a c:/mingw/lib/libxvidcore.a

    10、x264
    软件主页:http://subversion.tigris.org/servlets/Proj...ist?folderID=91
    所需文件:svn-win32-1.1.4.zip
    解压后将 \bin 文件夹内的所有文件复制到C:\mingw\bin文件夹内。

    11、live
    下载地址:http://www.live.com/liveMedia/public/
    所需文件:live-latest.tar.gz
    解压
    cd live
    genMakefiles mingw
    make

    12、RealCodecs

    下载附件中的文件(已分卷),将其解压到某个路径备用。

    至此,依赖软件和库文件的配置安装结束。

    附加文件  RealCodecs.part1.rar ( 351.56k )
    附加文件  RealCodecs.part2.rar ( 350.26k )
     
    四、编译安装MPlayer

    1、下载源代码包

    首先去http://www.mplayerhq.hu/homepage/design7/dload.html 下载MPlayer的源代码包,依据你的个人喜好,你可以下载正式发行的源码版本,比如MPlayer v1.0pre6a source,也可以下载每天更新的CVS版本。

    然后去http://www4.mplayerhq.hu/homepage/design7/codecs.html 下载那个名叫Windows all的解码器包。

    2、两个包全部解压

    3、用cd命令进入MPlayer源码的目录

    4、./configure --help

    注:执行这一步可以得到该软件支持的./configure的附加条件,可以根据自己的机器情况选用。

    其中有些条件是默认支持的,比如说,sse2,3dnow!等指令集的自动检测/支持,real及win32媒体文件的支持,流媒体的支持等等,你可以在附加条件中忽略它们。(有的时候,某些条件未必能够监测得出来。你可以注意一下下一步的 ./configure 后的执行输出,里面包含了所有的条件执行信息,如果有没有认出的,你可以手动指定。)

    5、下面就是./configure步骤了,这是我的配置,你可以根据自己的情况更改

    ./configure --prefix=D:/MPlayer --enable-win32 --enable-real --enable-live --enable-directx --enable-dshow --with-codecsdir=D:/MPlayer/codecs --with-win32libdir=D:/MPlayer/codecs --with-reallibdir=D:/MPlayer/realcodec --with-livelibdir=D:/MPlayer/codecs --enable-static --enable-largefiles --disable-mencoder
    其中:
    --prefix=D:/MPlayerr 为自定义Mplayer的安装路径。
    --with-codecsdir=D:/MPlayer/codecs 我把下载的那个/windows-all-20050115 的解码包解压到D:/MPlayer/codecs,这个命令是指定它的路径。(下面的win32也指向这个路径就行)
    --with-reallibdir=D:/MPlayer/realcodec 记得上面第12步中我们解压备用的那个RealCodecs吗?在这里指定它的路径。
    --with-livelibdir=D:/MPlayer/live 上面第11步中我们编译的那个live文件的路径。
    --enable-largefiles 支持2GB以上的单个文件——这恐怕对于HDTV爱好者来说是至关重要的。
    --enable-directx 和 --enable-dshow 这两项实际上是“自动监测”的,但是有一次在我的机器上没有认出来,还是写一下吧。
    --enable-static 是必须的,请注意一下。
    --disable-mencoder mencoder这东东我用不到,disable了。
    注意:如果你想将编译好的MPlayer.exe能够运行在不同的机器上,可以加上 --enable-runtime-cpudetection 选项;如果只是用在自己的机器和系统上,那就不要加这个。

    请注意一下 ./configure 以后的输出结果,在其中可能就能找到下次需要改进的地方。

    6、make

    如果你是1.0G以下的CPU,你大可以去午睡一会儿了。需要比较长的时间。

    7、make install

    好了,大功告成。去D:\MPlayer下看看,在bin文件夹下就可以找到Mplayer.exe了。

    五、MPlayer的使用

    1、命令行方式

    上述我们编译好的Mplayer.exe是一个命令行的应用程序——事实上官方的windows realse也是命令行版本的。这个在Windows的命令提示符里面可以运行,好在Windows的命令提示符支持拖动,我们也就不用费力的一个字符一个字符的输入了。

    如图,是Mplayer播放文件的正确命令,注意mplayer.exe和媒体文件路径之间有空格键。具体使用及控制键请参阅上面提到的官方文档。
     
     
    2、图形界面方式。
    世界各地的软件编写者们为MPlayer编写了大量的GUI,其中windows平台的也为数不少。你可以在这里查到它们的列表:http://www.mplayerhq.hu/homepage/design7/projects.html

    其中,比较优秀的有:

    (1)WinMPLauncher (http://chameleon.gazellevillage.com/~twerp...MPLauncher.html

    我一直用这个,使用简单,功能强劲,而且资源占用几乎可以忽略不计。缺点是没有进度条和播控按钮。如图。使用方法:解压后双击 WinMPLauncher.exe,选择我们的MPlayer.exe所在路径,确定后即可使用它作为前端来调用MPlayer.exe播放文件了。

    (2)mplgui
    http://www.mplayerhq.hu/homepage/design7/projects.html

    这个图形界面的优点是功能全, 它支持皮肤、拖动、进度条、一些基本图形控制按钮,列表播放等。但是我只找到了一种方法打开文件——拖动,而且没有打开URL的控制项。使用方法和上面的那个大同小异。不再赘述。

    (3)MPlayerWIN(http://www.chronix.org/projects/mplayerwin/

    有不少性能选项,也还可以。

    (4)MPlayer interface(http://home.freeuk.com/tom.nealon/mplayer.html

    总体上介绍的第1、3、4基本上是同类的——单纯的GUI,但是综合性能上来讲还是第一个比较强。

    (5)MPUI(http://www-user.tu-chemnitz.de/~mfie/index.php?software=mpui

    最好的一定要留在最后说。 这个图形界面功能是最全的,但同时也是占用资源最高的。下载后只将里面的MPUI.exe和autorun.inf两个文件解压到你的MPlayer目录,双击MPUI.exe即可使用。

    还有很多,就不一一列出了,大家可以自己尝试,选出自己喜欢的。

    如图是自己编译好的MPlayer,使用WinMPLauncher 界面播放mms流媒体时的截屏。但是mplayer播放的图像抓不下来哪位大虾知道怎么抓告诉一声,谢了!
     
    我编译的这个版本的资源占用情况:

    1094kbps的xvid影片(外挂sub字幕)连上GUI三个进程(在9~21%之间):
     
     
    一路风风雨雨,MPlayer依然是我的最爱。曾经的开源项目典范,今天依然辉放着灿烂的光彩。还是那句心声:愿Mplayer一路走好!

    全文完
     
    补记:MPlayer自身的libavcodec只支持RealVideo 1.0 的解码,对于RealVideo 2.0,3.0,4.0的解码需要调用RealPlayer的lib们——这也就是编译Mplayer的重要意义——实际上在Linux下我也是这么做的,但是官方文档并没有提到MinGW环境下的问题,只是提到了Cygwin,MinGW我已经弄成功了,就是文中的那个RealCodec

    (不过Mplayer那可爱的子项目FFmpeg已经支持realvideo2.0了 ——这个更多的是专利问题而不是技术问题——谁叫Mplayer是欧洲人搞得呢?)回头试一下。︿_︿

    文章引用自:http://forums.mozine.org/index.php?showtopic=124&pid=753&mode=threaded&show=&st=&#entry753

  • 相关阅读:
    四,redis6版本的使用部署
    记录篇-浪潮服务器raid卡
    sudo漏洞解决方案--源码转rpm包(spec文件编写)
    关闭 Chrome 浏览器阅读清单功能
    【转译】如何成为一个数据工程师?
    Python 用最小堆获取大量元素 topk 大个元素
    Python 实现二分查找
    Python 排序算法之堆排序,使用 heapq 实现
    Python 排序算法之归并排序
    Python 排序算法之快速排序
  • 原文地址:https://www.cnblogs.com/smallmuda/p/1425976.html
Copyright © 2011-2022 走看看