1. 下载到必要的软件包
* MPlayer 的源代码,我用的是 MPlayer-1.0pre7.tar.bz2。
* Patch的名字是 mplayer-1.0_pre7-gcc4-fix.patch,顾名思义,mplayer 在 gcc-4.0 的环境中编译,也就是 fc4t2 升级后的 fc3 中,使用了 gcc-4.0 的时候,必须要打这个 patch 才能编译成功。
* 必要的解码器,也就是 essential-codecs, 或者也可以下载 all-codecs。
* 一些解码器是可选的,比如 LIVE.COM 还有 lzo, libmad 等等。
* 准备一个中文的 ttf 字体。 不过这个大家都有,不用去别处找。
2. 环境介绍
也就是说,我们要在什么样的环境里使用 MPlayer。
* 没有图形界面,机器上没有 gtk-1.2 所以就不用图形界面了。
* 默认 locale 为 UTF-8 编码。
3. 编译步骤
1). 准备 codecs
本来我以为不需要 /usr/local/lib/codecs,但是后来发现会找不到 xanim codecs,所以还是需要它。 链接到 /usr/lib/win32 是因为可以与 xine-lib 共享这些解码器。
[root@geeks ~]# tar jxf all-20050412.tar.bz2 |
2). 解压
[root@geeks ~]# tar jxf MPlayer-1.0pre7.tar.bz2 |
3). 打补丁
当然,只有 gcc-4.0 的时候才需要打补丁,并且这个补丁只适合这次的情况,也就是说,只对这个 MPlayer-1.0pre7.tar.bz2 有效果。注意啊,我们现在在源代码目录了。下面是执行结果,好多文件被打上了补丁
[root@geeks MPlayer-1.0pre7]# patch -p1 < ../mplayer-1.0_pre7-gcc4-fix.patch |
patching file configure patching file liba52/imdct.c patching file |
4). 配置
根据我们上面提到的环境,没有 gtk-1.2 所以不用 –enable-gui 之类的参数。但是我们需要中文的提示,并且是在 locale 为 UTF-8 的情况下使用,所以要这样配置。–charset=utf8 是在 pre7 里面新增的。下面是命令和输出结果。编译时的输出很重要,从这个输出中我们可以看到 XAnim 和 RealPlayer 的解码器是从 /usr/local/lib/codecs 自动探测到的。没有加入 menu 和 xmms 的支持,也没有 gui,但是这正是我需要的,因为我的系统中没有 xmms 这些过时的 gtk-1.2 程序。
[root@geeks MPlayer-1.0pre7]# ./configure –language=zh_CN –charset=utf8 |
Detected operating system: Linux Detected host architecture: i386 |
5). 编译和安装
在配置之后,通常的步骤是编译和安装,也就是 make && make install。但是这个版本的源代码缺少我们需要的一个文件,必须加上它。这个文件的作用是指明原始消息的编码。在 help 目录有很多消息文件,每种语言的消息文件都有一个对应的文件来表示编码,这也是 pre7 新加进来的。
[root@geeks MPlayer-1.0pre7]# echo ‘GB2312’ > help/help_mp-zh_CN.h.charset |
6). Make && Make Install
这一步可能会出现编译刚开始就立即失败的情况。这时不妨运行一下 make distclean,将所有临时文件都清空。清空临时文件,也就意味着我们的第三步 “配置” 的结果全部清除掉了,也就是说我们需要重新运行第三步。当然,参数是完全一样的。第四步就不必重新运行了,因为文件只需要建立一次。最后,重新运行 make && make install
7). 运行 Mplayer 查看输出的效果
[root@geeks MPlayer-1.0pre7]# mplayer |
MPlayer 1.0pre7-4.0.0 (C) 2000-2005 MPlayer Team CPU: Intel Pentium 4/Xeon/Celeron Foster (Family: 8, Stepping: 9) Detected cache-line size is 64 bytes CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 针对有扩展指令集x86 CPU编译: MMX MMX2 SSE SSE2 用法: mplayer [options] [url|path/]filename 基本选项: (包括所有选项的详细列表参见manpage!) -vo 选择视频输出模式和设备(用’-vo help’查看列表) -ao 选择音频输出模式和设备(用’-ao help’查看列表) vcd:// 从设备而不是普通文件上播放VCD(video cd)track dvd:// 从设备而不是普通文件上播放DVD title/track -alang/-slang 选择DVD音轨/字幕的语言(使用两位的国家代码) -ss 寻找指定的(多少秒或hh:mm:ss)位置 -nosound 不播放声音 -fs -vm -zoom 全屏播放选项(fullscr,vidmode chg,softw.scale) -x -y 设置播放的分辨率(用于改变vidmode或软件缩放) -sub 指定使用的字幕文件(参见-subfps, -subdelay) -playlist 指定使用播放列表文件 -vid x -aid y 选择用于播放的视频(x)和音频(y)流 -fps x -srate y 改变视频(x fps)和音频(y Hz)率 -pp 使用后期处理滤镜(详细 -pp 使用后期处理滤镜(详细内容参见manpage/docs) -framedrop 使用 frame-dropping (用于慢机器) 基本控制键: (完整的列表参见manpage, 同时也要检查一下 input.conf) <- or -> 向后/向前搜索10秒 up or down 向后/向前搜索1分钟 pgup or pgdown 向后/向前搜索10分钟 < or > 跳到播放列表中的前一首/下一首 p or SPACE 暂停播放(按任意键继续) q or ESC 停止播放并推出 + or – 调整音频延迟+/-0.1秒 o 循环OSD模式: none/seekbar/seekbar+timer * or / 增加或减少pcm音量 z or x 调整字幕延迟+/-0.1秒 r or t 上/下调整字幕位置, 参见-vf expand!
8). 手册页
另外还有手册页也就是 man mplayer,尽管中文版的这个文件可能有点过时了。下面的命令可以临时地看看手册页的内容
[root@geeks MPlayer-1.0pre7]# man DOCS/man/zh/mplayer.1 |
9).中文字体
哪儿去找中文字体?记得我们刚才提到的那个字体文件吗?
|
就是这样
update:
安装 LIVE.COM 的步骤
1. 先把机器上原有的 live.com 卸载掉,然后解压最新版的压缩包,会得到一个 live 目录。进入这个目录,编译,退出这个目录,将这个目录整个复制为系统中的 /usr/lib/live 就可以了,这样 编译 mplayer 时候,configure 会自动找到的。
[root@geeks ~]# rm -rf /usr/lib/live |
2. 在安装 mplayer 前安装 live,在编译 mplayer 时会自动找到的,所以编译 mplayer 的步骤不需要变化。 如果已经按照上面的步骤安装了 mplayer,那么需要先卸载掉已有的,然后重新安装。这时候有两种情况
2.1 如果上一次编译的那份 pre7 源代码已经删掉了,那么只能从头来过,包括打补丁等等。codecs 文件就不用再动了
2.2 如果还保留着上次的 pre7 源代码,那么可以执行 make uninstall && make distclean 也就是说,卸载。