Wiki: Mplayer Notes
2006/5/18
首先介绍一下字幕的基本知识。字幕主要有三种,sub格式、srt格式和内嵌格式。不同格式 的字幕显示方法不太一样。
sub格式字幕其实是特殊的经过压缩处理的位图格式的字幕,因此它的显示非常简单。只需 要sub字幕文件跟avi文件在同一目录下,并且前缀名完全相同,mplayer就会自动加载。有 时候从射手网上下载的字幕文件跟avi文件前缀名不一样,最好手工改成一样的。举例来说,电 影文件为 abcdefg.avi,那么字幕文件就应该是abcdefg.sub。
如果实在不愿意改,那还可以玩个花,就是在mplayer后面加上“-vobsub”的参数,该参数后 面跟着字幕文件的前缀名。注意只需要前缀名,并且同目录下还要有字幕的.idx文件。举例 来说,avi文件是~/movie/abcdefg.avi,sub字幕文件是 ~/download/chs.sub和 ~/download/chs.idx,那么mplayer的命令就是
mplayer -vobsub ~/download/chs ~/movie/abcdefg.avi
srt格式字幕是文本格式的,也有两种方法搞定它。
一种是下载mplayer的一砣字幕字体文件,简体的和繁体的都要下。下面以简体为例。下载 的文件名是gb2312-kai.tar.bz2。解压后有 gkai00mp16和gkai00mp24两个子目录,这两个 区别就是字体的大小。假设解压到~/.mplayer/目录下。继续假设avi文件是 ~/movie/abcdefg.avi,srt是~/download/chs.srt,(说起来简单,写起来咋就这 么麻烦呢?)由于简体字幕一般都是简体中文编码,播放命令为
mplayer -font ~/.mplayer/gkai00mp24/font.desc -sub ~/download/chs.srt -subcp cp936 ~/movie/abcdefg.avi
繁体字幕就换为-subcp big5
另外一种方法是使用现成的随便哪个ttf字体,假设simsun.ttf字体在 ~/.mplayer/ 目录 下,那么播放的命令就是:
mplayer -font ~/.mplayer/simsun.ttf -sub ~/download/chs.srt -subcp cp936 ~/movie/abcdefg.avi
注:只要在配置文件中加上这三行就成了
fontconfig = yes
font = SimSun
subcp = gbk
注意:你如果是自己编译安装的mplayer的话,编译时要加上-free-type的选项(具体怎么 写不清楚),不然第二个方法不能用。所以还是用打好包的版本吧。
严重注意:对于英文locale的朋友,一定检查一下自己的i18n文件中LC_TYPE是否为 LC_CTYPE=zh_CN.UTF-8,不然字幕显示的都是问号。
严重严重注意:有极少数字幕是utf-8编码的,最好先用文本编辑器确认一下。播放时 把-subcp cp936改为unicode就可以了。
这个偶还没有遇到过。。。等碰到了再写出来。
罗嗦半天真累啊,咬牙接着写。没有声音和图像最大的原因就是没有解码器,加个plf源, 把real-codecs和win32-codecs都装上。要注意的是mplayer的搜索路径可能和这两个codecs 安装路径不一样,看一下mplayer的错误信息中提到在哪些目录下没有找到相应解码文件, 然后拷过去。没有声音或者图像还有一个原因比较少见,但偶尔也会遇到。我曾经看一个后 缀名为rmvb的电影,只有图像,没有声音。但是用realplayer 看就有声音。把realplayer 目录下的解码文件全考到mplayer下面也不行。后来发现这个电影的声音编码比较怪 (libfaad),由于版权的原因打包好的mplayer根本就没有提供对它的支持。装了一个plf 源的mplayer,问题解决了。
这个方法不是利用mplayer的pluggin,而是利用mplayer可以从stdin播放的功能。比如,我 们学校有好多电影ftp,我根本不用把电影完全下载到硬盘上,使用下面命令就可以在线播 放。
wget ftp://.....abcdefg.avi -O - | mplayer -cache 8192 -
需要字幕?没问题,不过字幕需要先下载到硬盘上,字幕放到stdin里面是不行恴地。然后 用上面提到的显示字幕的方法加载字幕。
再比如,我经常到music.zixia.net在线听歌,我可以完全不用xmms,我只需把m3u文件保存 到硬盘上,然后用
wget -i m3u -O - | mplayer -cache 1000 -
就可以听了。嘿嘿,爽吧。
对于mplayer这种明显对机器硬件依赖较大的软件还是自己编译比较好,能尽量发挥机器性 能,让自己看的比较爽 :) 在我的t40p上看一般的xvid电影,大概有15%的性能差距。
在debian上编译还稍微有些麻烦,因为debian发布的都是二进制包,缺乏相应的编译环境, 需要下载不少dev包。
mplayer的源码包可以从官方网站或者deb-src源里获得。
./configure --prefix=/usr/local/mplayer \
--disable-gui \
--disable-lirc \
--disable-lircc \
--disable-joystick \
--disable-xf86keysym \
--disable-tv \
--disable-tv-v4l \
--disable-tv-v4l2 \
--disable-tv-bsdbt848 \
--enable-dvdread \
--enable-win32 \
--enable-dshow \
--enable-qtx \
--enable-real \
--enable-xvid \
--enable-divx4linux \
--enable-gl \
--enable-xv \
--enable-fbdev \
--enable-directfb \
--enable-alsa \
--enable-freetype \
--disable-smb \
--disable-live \
--disable-macosx \
--disable-macosx-finder-support \
--disable-macosx-bundle \
--disable-inet6 \
--disable-internal-tremor \
--disable-tremor-low \
--disable-external-tremor \
--disable-vorbis \
--disable-speex \
--disable-theora \
--with-win32libdir=/usr/local/lib/codecs \
--with-codecsdir=/usr/local/lib/codecs \
--with-reallibdir=/usr/local/lib/codecs
Config files successfully generated by ./configure !
Install prefix: /usr/local/mplayer
Data directory: /usr/local/mplayer/share/mplayer
Config direct.: /usr/local/mplayer/etc/mplayer
Byte order: little-endian
Optimizing for: pentium-m mmx mmx2 sse sse2 mtrr
Languages:
Messages/GUI: en
Manual pages: en
Enabled optional drivers:
Input: ftp network edl matroska mpdvdkit2 vcd dvb
Codecs: qtx divx5linux xvid amr_wb amr_nb libavcodec real xanim dshow/dmo win32 faad2(internal) libmpeg2 liba52 mp3lib
Audio output: oss mpegpes(dvb)
Video output: xvidix cvidix md5sum pnm png mpegpes(dvb) fbdev xv x11 xover tga
Audio filters:
Disabled optional drivers:
Input: vstream tv-v4l2 tv-v4l tv-bsdbt848 tv live555 cdda dvdread smb
Codecs: divx4linux x264 libdv faac musepack libdts libtheora speex libvorbis twolame toolame libmad liblzo gif
Audio output: sgi sun alsa openal jack polyp esd arts dxr2 nas dsound win32 sdl
Video output: winvidix bl zr zr2 dxr3 dxr2 directx sdl vesa gif89a jpeg svga caca aa ggi xmga mga opengl dga xvmc directfb tdfx_vid tdfxfb 3dfx
Audio filters: ladspa
lame
libpng12-dev
libdivxdecore0
libx11-dev
libfontconfig1-dev
libfreetype6-dev
w32codecs 可以到mplayer的官方网站下载 codecs,放到 /usr/local/lib/codecs/ 下边,编译时试用。 这里有一个所有解码器的列表:http://www.mplayerhq.hu/MPlayer/releases/codecs/
不少摘抄自writetohai的 blog