mplayer中文字幕乱码问题解决

长期以后,最烦我的事情就是mplayer不能显示中文字幕。追朔原因,当然是字符集的问题。linux下的中文字符集都是utf的字符集,但是几乎所有的字幕文件用的都是GBK或者GB2312的字符集。再加上mplayer的字体设置问题,我的mplayer一直都看不到中文字幕。

不过,今天总算在网上找到答案了。
原来根本不复杂的,在mplayer的窗口点右键,选择Preference,然后设置Font,随便选一个,并设置字体的Code,比如用ubuntu自带的字体,就选unicode,然后把OSD/Sub编码选为字幕文件的编码,一般是Cp936。这样就OK了。

如下图所示:

screenshot-preferences-1

screenshot-preferences-font

如果你找不到相关的中文字体,可以用我的这个,点击下载字体

附上官方的解决方法
配置中文字幕显示(可选)

mkdir ~/.mplayer
ln -sf /usr/share/fonts/truetype/arphic/uming.ttf ~/.mplayer/subfont.ttf
gedit ~/.mplayer/gui.conf
sub_cp = "cp936"
font_text_scale = "4.000000"
font_osd_scale = "4.000000"
sub_fuzziness=2

如果按照上的方法不行,无论GUI窗口还是命令行播放视频字幕都是横线,就请尝试下面的方法。

对于命令行播放

~/.mplayer/config文件里加上

subcp="cp936"

font = "/usr/share/fonts/truetype/arphic/uming.ttf"

subfont = "/usr/share/fonts/truetype/arphic/uming.ttf"

对于GUI窗口播放 在 MPlayer 点右键
Preferences -> Subtitle & OSD -> Encoding,选择 Simplified Chinese charset (CP936)。
Preferences -> Font, 在 Font 处输入/usr/share/fonts/truetype/arphic/uming.ttf,在 Encoding 处选择 Unicode 如果还不行,就用以下的方法。只是不知道ubuntu 9.10用的是哪个版本的mplayer(据说是svn库里面的),最近中文字幕老是搞不定,折腾了一个晚上终于解决了。

解决方法其实很简单:方法一:修改LC_CTYPE,在/etc/environment文件中加入一行 LC_CTYPE=zh_CN.utf8

方法二:在mplayer的preference的subtitles & OSD中勾选上SSA/ASS subtitle rendering 这样也可以。

上述两种方法都可以解决中文字幕为横杠的问题,只是字体是系统的,不是你指定的。

方法三:哈哈,自己发现的,原来在mplayer的preferences的font页中,在选择字体的时候不能选择具体的字体文件,而是要输入字体名称。例如我用的是准圆字体,就不应该填写 ~/.fonts/ZhunYuan.ttf 而应该填写 ZhunYuan

如此这般,mplayer又恢复常态了。