一直在用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 <mode> 

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:<language>:<fallback codepage> (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-device /xxx/dvd -sid 0 -subcp cp936 -framedrop 



流媒体文件 

mplayer -cache 8192 

使用8M的缓存 



framedrop参数 

我的配置:赛扬366Mhz,440zx主板,256M,GF4mx440,系统MagicLinux 1.2b1、MPlayer1.0pre5。 

在我的电脑上,还能流畅播放avi、老的rm/rmvb、ogm、asf等媒体。较新的rmvb、wmv和DVD播放都很慢。发现只有在播放DVD时使用 framedrop参数后能流畅播放,其他的rmvb、wmv使用了framedrop参数后不但速度没提高,有时反而更慢。 



暂时只有这么多。哪位有好的播放心得请续帖子!!!

mplayer使用心得[转]的更多相关文章

  1. 开源项目live555学习心得

      推荐:伊朗美女找丈夫比找工作难女人婚前一定要看清三件事 × 登录注册   疯狂少男-IT技术的博客 http://blog.sina.com.cn/crazyboyzhaolei [订阅][手机订 ...

  2. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  3. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

  4. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  5. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  6. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  7. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  8. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  9. 我的MYSQL学习心得(七) 查询

    我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

随机推荐

  1. structs2的048漏洞复现 2.3.32版本

    S2-048 远程代码执行漏洞 影响版本: 2.0.0 - 2.3.32 之前在网上说只要时2.3.*的版本都有这个漏洞,自己装了个2.3.34的试了几次都没有执行 然后下载了找到了这篇文章才知道影响 ...

  2. Oracle表空间概述及其基本管理

    最近在工作中遇到有同事对Oracle表空间的理解有问题,所以写了这篇文章.我会从概念,管理及特别需要关注的点等几个维度对表空间进行一些介绍.本文以介绍表空间为主,涉及到的其他概念不展开描述.有问题的地 ...

  3. Fabric1.4:运行 first-network 网络

    说明:运行 first-network 网络,必须先安装好 fabric1.4 的预置环境,fabric1.4 的安装可以参考此博文:https://www.cnblogs.com/zongmin/p ...

  4. 关于redis分布式锁

    Lock 分布式锁 1.安全属性:互斥,不管任何时候,只有一个客户端能持有同一个锁. 2.效率属性A:不会死锁,最终一定会得到锁,就算一个持有锁的客户端宕掉或者发生网络分区. 3.效率属性B:容错,只 ...

  5. 小程序和wepy做循环渲染如何点击拿到相对应的值

    数据和其他的就忽略,简单上手,wepy的for渲染方式改成对应的就行,传参触发不用改 <view wx:for="{{list}}"> {{item.title}} & ...

  6. docker使用阿里云加速器

    1 登录阿里云获得地址 登录https://cr.console.aliyun.com ,点击"镜像加速器",会给我一个地址. 2 写入/etc/docker/daemon.jso ...

  7. 【Tool】---SVN的超级简单并具体得使用介绍

    又一次被打脸,笔者表示再也不相信自己的记性了.简单的SVN隔了一段时间后,由于项目的需要要重新简历代码库,竟然一下子又忘了.天那,这就好比战士上了战场发现没带枪,这能行吗?因此,趁着今天又简短的复习了 ...

  8. DateTime.Now

    // 2008年4月24日 System.DateTime.Now.ToString( " D " );// 2008-4-24 System.DateTime.Now.ToStr ...

  9. python专题文件操作

    一 前言 本篇文章主要对文件操作进行说明,知识追寻者创作必属精品,读完本篇你将获得基础的文件操作能力,深入理解文件操作API,基础真的很重要,不管学什么知识,故看知识追寻者的专题系列真的很不错. 二 ...

  10. [bzoj1375] [Baltic2002] Bicriterial routing 双调路径

    Description 如今的道路收费发展很快.道路的密度越来越大,因此选择最佳路径是很现实的问题.城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用. 路径是连续经过的道路组成的.总时间 ...