技术文章: mplayer使用心得[zz]

技术文章: mplayer使用心得 贴出者为 Bluedata 多媒体类 一直在用mplayer,其他的播放器很少用。以下是我使用过程中的一些心得。 注意,下面用的路径都是在我的电脑上的路径,使用时请不要照抄!应该换成你的电脑上的正确路径。 一、首先还是讲安装方面的问题。 具体的安装见本版的精华帖子,这里不详细讲。 http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=80676 代码: ./configure --enable-gui --with-codecsdir=/usr/lib/w32/ --language=zh_CN --enable-freetype --enable-fontconfig 这是我使用的编译参数,仅供参考。 1、解码器 到官方网站下载,放到一个目录下,./configure时用--with-codecsdir=DIR来指定。 2、GUI 要想使用GUI界面,编译时指定--enable-gui参数。安装完后,到官方下载皮肤,解压后放到mplayer的Skin目录下。之后可以用gmplayer -skin xxx来启动(xxx为Skin中的皮肤的目录名)。 3、配置文件 其实不使用config配置文件也行的。mplayer会使用默认的规则。如果你还是想使用配置文件,可以到源代码目录下的etc目录下找。那个什么example的文件就是config的实例文件。 4、字幕字体 有两个方法: A、到官方网站下载字体文件,具体参考mplayer索引中的帖子: http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=3892464#3892464 使用的是font.desc这个文件。 B、在编译是使用--enable-freetype参数(当然要系统支持),在~/.mplayer/下建立subfont.ttf的符号连接到某个字体文件。例如我的是subfont.ttf -> /usr/fonts/truetype/simsun.ttf。这样mplayer就会自动加载字体了。 方法A可以在config文件中写font=/tmp/gb2312-kai/gkai00mp24/font.desc来让mplayer自动加载。注意config中的font设定比subfont.ttf优先级更高。(优先级应该是:命令行中的设定->config中的设定-> subfont.ttf) 命令行中指定字体文件,通过-font参数。例如: mplayer -font /xxx/font.desc 或 mplayer -font /xxx/simsun.ttf 二、字幕显示 1、字幕的加载 其实mplayer是可以自动加载字幕文件的。但是这只是在字幕文件名跟媒体文件名相同时才起作用(后缀不同) 例如这样的: “迁徙的鸟” Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD1.avi Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD1.idx Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD1.sub Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD2.avi Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD2.idx Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD2.sub 这样的就能自动加载字幕,通过j键切换。 但像这种的就不行了 “魔戒3” dmd-rotktc-cd1.avi dmd-rotktc-cd1.Chs.srt dmd-rotktc-cd1.Cht.srt dmd-rotktc-cd1.Eng.srt dmd-rotktc-cd2.avi dmd-rotktc-cd2.Chs.srt dmd-rotktc-cd2.Cht.srt dmd-rotktc-cd2.Eng.srt dmd-rotktc-cd3.avi dmd-rotktc-cd3.Chs.srt dmd-rotktc-cd3.Cht.srt dmd-rotktc-cd3.Eng.srt 这种情况下要使用参数具体指定一个字幕文件 mplayer dmd-rotktc-cd1.avi -sub dmd-rotktc-cd1.Chs.srt 其实mplayer还有一个聪明的参数可以使用的,就是 -sub-fuzziness Adjust matching fuzziness when searching for subtitles: 0 exact match 1 load all subs containing movie name 2 load all subs in the current directory 可以使用-sub-fuzziness 2来让mplayer加载目录下的所有字幕文件,播放时可以通过j键切换。 mplayer dmd-rotktc-cd1.avi -sub-fuzziness 2 多说一句,这个参数在命令行下是较好使的,但KPlayer中就不行。(我用的是ML1.2b1,呵呵) 2、中文字幕的显示 有的人安装了mplayer和字体后,显示的中文字幕是乱码。这主要是没有设置好参数的问题。 结合上面的“字幕字体”中的介绍的两个方法,分别要加上以下参数才能正常显示中文字幕。 A、font.desc字体的话,要加上-unicode参数。 B、ttf字体的话,要加上-subcp xxx参数。其中xxx可能为:cp936、gb、gbk等等,具体要看字幕的编码格式。 例如: 代码: mplayer dmd-rotktc-cd1.avi -sub dmd-rotktc-cd1.Chs.srt -font /tmp/gb2312-kai/gkai00mp24/font.desc -unicode 代码: mplayer dmd-rotktc-cd1.avi -sub dmd-rotktc-cd1.Chs.srt -font /usr/share/fonts/simsun.ttf -subcp cp936 其实上一节“1、字幕的加载”给出的mplayer的播放命令都是不能正常显示中文的,因为没加上正确的参数。 到这里,关于-sub-fuzziness要多说一下了。为了正确显示中文,要加-subcp参数,例如-subcp cp936 mplayer dmd-rotktc-cd1.avi -sub-fuzziness 2 -subcp cp936 但这样又会带来一个问题。像上面的魔戒3中,有简体、繁体和英文字幕。但加上-subcp cp936后,繁体字幕会加载不了。 对于font.desc和ttf这两种字幕字体,我个人推荐使用ttf字体。因为使用font.desc会不能正常显示一些中文字幕(内嵌字幕等),即使加上-unicode参数。或许行,但我不知道要用什么方法才行。下面,就以ttf字体的例子,讲讲具体的字幕显示方法。 总的来说,字幕文件是什么编码格式,-subcp后面就加上相应的编码。 例如,字幕文件是GB编码的话,就用-subcp gb 字幕文件是GB2312编码的话,就用-subcp gb2312 字幕文件是utf8编码的话,就用-utf8 utf8的情况很少见,因为多数字幕是国人在windows下制作的,使用的都是GB系列的编码格式,不过你可以把原来的GB系列编码格式文件转换为utf8格式,你会发现使用-utf8参数后才能正常显示字幕。同时你会发现用font.desc加unicode的方法是不能正常显示utf8编码的字幕文件的。 一般的,使用-subcp cp936 就能正常显示简体中文字幕。如果你发现显示的字幕中有的正常,有的不正常,这说明字幕文件确实是GB系列编码的,你可以试试把cp936换成其他的例如 GBK,GB2312等等,总有一个行的。你还可以用iconv -l来显示系统中已知的字符集,来帮助你选择编码。 我的系统中GB系列有GB, GB2312, GB13000, GB18030, GBK, GB_1988-80, GB_198880 在这方面,mplayer也有一个不错的选项可以使用。 -subcp enca:: (ENCA only) You can specify your language using a two letter language code to make ENCA detect the codepage automatically. If unsure, en- ter anything and watch mplayer -v output for available lan- guages. Fallback codepage specifies the codepage to use, when the autodetection fails. EXAMPLE: -subcp enca:cs:latin2 Guess the encoding, assuming the subtitles are Czech, fall back to latin 2, if the detection fails. -subcp enca:pl:cp1250 Guess the encoding for Polish, fall back to cp1250. 但我发现这个选项工作的不太好,例如-subcp enca:zh:cp936 按照上面的说明,应该是让其自动检测中文编码,检测失败时使用cp936。 原来使用-subcp cp936能正常显示的字幕,当用-subcp enca:zh:cp936时反而成了乱码。 上面所说的都是外挂字幕文件的,现在介绍两种内嵌字幕的媒体格式: MKV格式: 播放命令: mplayer [52wy][Naruto][094][Jp_Cn][Xvid_Bf].mkv -sid 0 -subcp gb -font /usr/share/fonts/simsun.ttf 建议在命令行下播放,这样可以看到详细的信息: 代码: 播放 [52wy][Naruto][094][Jp_Cn][Xvid_Bf].mkv. SUB: error opening iconv descriptor. [mkv] Track ID 1: video (V_MS/VFW/FOURCC), -vid 0 [mkv] Track ID 2: audio (A_MPEG/L3), -aid 0, -alang und [mkv] Track ID 3: sutitles (S_TEXT/UTF8), -sid 0, -slang chi [mkv] Track ID 4: sutitles (S_TEXT/UTF8), -sid 1, -slang chi [mkv] Will play video track 1 [mkv] Will play audio track 2 [mkv] Will display subtitle track 3 检测到Matroska文件格式。 要使用-sid 0或者-sid 1来指定字幕。不然mplayer默认不加载字幕的。 OGM格式: 我在一些国外网站上下载了一些OGM格式的文件,一开始我还以为没字幕的。后来看到播放信息才发现原来是内嵌的字幕(要通过-sid 0调出来) 代码: SUB: error opening iconv descriptor. SUB: error opening iconv descriptor. 检测到Ogg文件格式。 播放命令:mplayer xxx.ogm -sid 0 -subcp cp1250 (是英文字幕来的) 最后说一下字幕字体大小的设定。我发现用 -font /usr/share/fonts/simsun.ttf 显示的字幕字体大了点,有时字数一多就要多行显示,实在不太行。 后来试了试,觉得使用 -subfont-autoscale 2 -subfont-text-scale 4 这两个参数后,字体大小就比较满意。 3、其他 RMVB 最新的real编码,mplayer暂时不支持,要看的话使用realplayer10 for linux。不过这个软件在有些机上工作不太正常。 有些rmvb文件,虽然不是用最新的编码器制作的,但是用mplayer播放时会因为“段错误”而退出。我发现可能是音频解码出了问题,可以使用-nosound来播放,就是没声音。或者试试用-ss 00:00:50 来跳到50s处播放,有时可以解决问题。 硬盘上的DVD mplayer dvd://1 -dvd-device /xxx/dvd -sid 0 -subcp cp936 -framedrop 流媒体文件 mplayer -cache 8192 mmst://xxxxx/xxx.wmv 使用8M的缓存 framedrop参数 我的配置:赛扬366Mhz,440zx主板,256M,GF4mx440,系统MagicLinux 1.2b1、MPlayer1.0pre5。 在我的电脑上,还能流畅播放avi、老的rm/rmvb、ogm、asf等媒体。较新的rmvb、wmv和DVD播放都很慢。发现只有在播放DVD时使用 framedrop参数后能流畅播放,其他的rmvb、wmv使用了framedrop参数后不但速度没提高,有时反而更慢。 暂时只有这么多。哪位有好的播放心得请续帖子!!! Re: mplayer使用心得 作者: canbaby 日期: 9月 03 @ 09:23:00 CST 写得不错 [ 回复 ] Re: mplayer使用心得 作者: redhat71 日期: 9月 03 @ 16:28:07 CST 我的经验: 1,idx+sub字幕,修改文件名,让MPLAYER自动加载,用-slang指定语言 123.avi, 123.idx, 123.sub 简:mplayer 123.avi -slang zh 繁:mplayer 123.avi -slang tw 2,srt字幕,不用修改文件名,直接用-sub指定字幕文件,-font指定ttf字体文件 123.avi, abc.srt 简:mplayer 123.avi -sub abc.srt -subcp cp936 -font /path/简体字体.ttf 繁:mplayer 123.avi -sub abc.srt -subcp big5 -font /path/繁体字体.ttf 3,mkv文件,执行mplayer xxx.mkv后有类似如下信息 ...... Playing 火影忍者.naruto.99.mkv. [mkv] Track ID 1: video (V_MS/VFW/FOURCC), -vid 0 [mkv] Track ID 2: audio (A_MPEG/L3), -aid 0, -alang eng [mkv] Track ID 3: sutitles (S_TEXT/UTF8), -sid 0, -slang chi [mkv] Track ID 4: sutitles (S_TEXT/UTF8), -sid 1, -slang chi ...... 因此:mplayer 火影忍者.naruto.99.mkv -sid 0 -slang chi -font /path/xxx.ttf 至于desc文件和-unicode参数还没用到过,不知道 [ 回复 ] Re: mplayer使用心得 作者: emylekao 日期: 9月 03 @ 17:33:49 CST 个人认为,mplayer不怎么样。 我个人喜欢用gxine。现在在fc2下面用totem。其实两者都是xine的前端而已。xine加上从网上下载的加码文件,基本上是无所不能。只有在看dvd的一些情况下,xine可能无法选择语言(情况很少见),我才会用导mplayer。 但是,我觉得,这两个播放器都比win下面的播放器好。win下面的东西,又大又占资源又没有效果。除了界面好看就没有可取的。而linux下面的软件虽然样子不怎么样,但是绝对播放效果一流。我很喜欢。 [ 回复 ] Re: mplayer使用心得 作者: 2001xk 日期: 9月 04 @ 03:27:08 CST 看VCD这么解决??VCD通常不是标准的,都是windows读的轨道。有什么办法? [ 回复 ] Re: mplayer使用心得 作者: apeter_2000 日期: 9月 04 @ 10:35:45 CST 个人觉得xine要比mplayer更胜一筹。 至少在播放real的各种格式上没有问题。 [ 回复 ] Re: mplayer使用心得 作者: easthero1982 日期: 9月 05 @ 15:45:32 CST 我放弃xine的原因就是xine不支持dvdrip外挂字幕,不知道有没有办法解决 [ 回复 ] Re: mplayer使用心得 作者: april_linux 日期: 9月 05 @ 21:34:12 CST 一个播放器就这么一大篇幅,桌面应用linux还得走很长一段路 [ 回复 ] Re: mplayer使用心得 作者: realwhz 日期: 9月 05 @ 21:35:55 CST xine的前端里面推荐使用totem,不过使用字幕时比较郁闷 [ 回复 ] Re: mplayer使用心得 作者: GGGO 日期: 9月 06 @ 02:15:25 CST 各个播放器都有自己的优点和缺点。不过会越来越好用的。

你可能感兴趣的:(Unix/*nix)