一直在用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. 小小知识点(四十一)-based和based on的正确理解

    A-based B<等价于>B based on A<等价于>B on the basis of A,翻译为基于A的B For example: (1) Radar-based ...

  2. ArcEngine 里面的日期

    问题: 将自己做的GIS系统放到其他系统上的时候发现用 IQueryFilter 进行时间查询的时候报错,原来的系统没有这个问题. 原因: 后来调试代码发现查询的时间里面有中文,显示格式 " ...

  3. TensorFlow——MNIST手写数据集

    MNIST数据集介绍 MNIST数据集中包含了各种各样的手写数字图片,数据集的官网是:http://yann.lecun.com/exdb/mnist/index.html,我们可以从这里下载数据集. ...

  4. TensorFlow——LinearRegression简单模型代码

    代码函数详解 tf.random.truncated_normal()函数 tf.truncated_normal函数随机生成正态分布的数据,生成的数据是截断的正态分布,截断的标准是2倍的stddev ...

  5. Ambari下安装oozieUI界面无法访问问题

    前言: 其他集群管理工具安装oozie和手动编译安装oozie,关于oozie的UI界面无法访问的问题,大致和该方法类似. 找到下面4步骤里的视图显示的目录,有一个ext-2.2软链指向的路径 lrw ...

  6. P3802 小魔女帕琪 概率与期望

    P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...

  7. SliverAppBar 介绍及使用

    SliverAppBar控件可以实现页面头部区域展开.折叠的效果,类似于Android中的CollapsingToolbarLayout.先看下SliverAppBar实现的效果,效果图如下: Sli ...

  8. python3装饰器-进阶

    一.wraps 作用:优化装饰器 from functools import wraps # 导入wraps def wrapper(f): @wraps(f) # wraps的语法糖 def inn ...

  9. python3函数进阶

    1.命名空间和作用域 命名空间     加载         内置命名空间             python解释器自带的变量和函数             开启python解释器自动加载内置命名空 ...

  10. 异数OS TCP协议栈测试(二)--短连接篇

    异数OS TCP协议栈测试(二)--短连接篇 本文来自异数OS社区 github:   异数OS-织梦师(消息中间件)群: 476260389 测试目标 TCP 短链接IO性能测试,Client Se ...