日期:2014-05-16  浏览次数:20853 次

Linux下mplayer加载中文字幕乱码解决方案
Mplayer播放器的强大性这里就不多说了,在Linux下浏览多媒体使用的基本都是它!我使用mplayer也有很长一段时间了,但一般下载的多媒体字幕都是内嵌的,所以也就没怎么碰到过字幕加载的问题!但这两天下载的一个视频文件是有字幕的,于是字幕加载乱码的问题就出现了……

虽然说网络上可以搜到很多相关的帖子,但要从中找到一份切实可行的提供解决方案却还是得需要花点时间!下面是本人经过实践找到的一种切实可行的解决方案!

几点说明:

关于字幕文件加载的常识:将字幕文件与视频文件的名称改成一样,但得保留各自的扩展名不变;然后将它们放在同一目录下,这样播放视频的时候就会自动加载其对应的字幕文件了!
gmplayer与mplayer的关系:gmplayer是mplayer的一种图形化显示,通过双击播放使用的就是gmplayer;mplayer只能通过命令行使用;gmplayer仅比mplayer多了个图形界面而已,实质都是一个东西!gmplayer对应的配置文件是~/.mplayer/gui.conf;mplayer对应的配置文件是~/.mplayer/config (我系统里的config文件是播放视频时自动生产的一个空文件)!
字幕文件的编码说明:网上有人说如果加载字幕出现乱码问题,用gedit将字幕文件打开,然后另存为utf8格式的就可以识别了!网络上获得的中文字幕文件大多是在windows下编辑的,编码格式是gb18030或gbk,这里需要说明的是还是保留其原编码格式,实践表明,如果改成了utf8编码,则下面的方法反而不适用了!

一、解决gmplayer的字幕加载问题

有两种解决方法:

(1) 修改配置文件
打开配置文件~/.mplayer/gui.conf,然后找到如下配置选项(没有的可自行添加),并修改如下:
复制内容到剪贴板
代码:
sub_auto_load = "yes"
sub_unicode = "yes"
sub_pos = "100"
sub_overlap = "no"
sub_cp = "cp936"
font_factor = "0.750000"
font_name = "/usr/share/fonts/truetype/arphic/uming.ttf"
font_encoding = "unicode"
font_text_scale = "3.000000"
font_osd_scale = "6.000000"
font_blur = "2.000000"
font_outline = "2.000000"
font_autoscale = "3"
sub_cp表明使用的中文编码;font_name指定了字幕使用的中文字体,也可以选择其它的,自己到/usr/share/fonts/下面去找;font_text_scale指定字幕字体的大小,默认的是5,感觉有些大!

(2) 图形界面配置
在gmplayer点右键, 修改Preferences -> Subtitle & OSD -> Encoding,选择 Simplified Chinese charset (CP936);修改Preferences -> Font, 在 Font 处选择你使用的字幕字体文件(也就是/usr/share/fonts/truetype/arphic/uming.ttf了),在 Encoding 处选择 Unicode!

二、解决mplayer的字幕加载问题

打开配置文件~/.mplayer/config,然后找到如下配置选项(没有的可自行添加,我的压根就是空的,所以直接添加了),并修改如下:
复制内容到剪贴板
代码:
subcp = "cp936"
subfont-encoding = "unicode"
font = "/usr/share/fonts/truetype/arphic/uming.ttf"
subfont-text-scale = "3.000000"
参照gmplayer配置文件的解释,应该很容易理解这几个选现各自的意义!但需要的注意的是,这两个配置文件的写法是不一样的,我就是在这里耗很多时间,被网上的帖子给误导了,很多给的都是与gmplayer配置文件的写法一样,所以怎么试验都是不行!

其实这里有个技巧,就是这几个配置选项其实都可以作为mplayer在命令行下参数来使用!之所以将它们写到配置文件里,就是为了避免每次都得在命令添加这些参数!如果将这几行都注释掉,则使用命令:
复制内容到剪贴板
代码:
mplayer xxx.avi -subcp cp936 -subfont-encoding unicode -font /usr/share/fonts/truetype/arphic/uming.ttf -subfont-text-scale 3
播放的效果是一样的!所以通过这种方法也可以判断你新添加的配置选项是否合法!

如果还有其它更好更全的解决方法,欢迎大家探讨!