Linux下mplayer加载中文字幕乱码解决方案
转自:http://hi.baidu.com/wzc0066/blog/item/2b6ac3f622a4c62e730eec2a.html Mplayer播放器的强大性这里就不多说了,在Linux下浏览多媒体使用的基本都是它!我使用mplayer也有很长 一段时间了,但一般下载的多媒体字幕都是内嵌的,所以也就没怎么碰到过字幕加载的问题!但这两天下载的一个视频文件是有字幕的,于是字
·
转自:http://hi.baidu.com/wzc0066/blog/item/2b6ac3f622a4c62e730eec2a.html
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"
(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"
其实这里有个技巧,就是这几个配置选项其实都可以作为mplayer在命令行下参数来使用!之所以将它们写到配置文件里,就是为了避免每次都得在命令添加 这些参数!如果将这几行都注释掉,则使用命令:
代码:
mplayer xxx.avi -subcp cp936 -subfont-encoding unicode -font /usr/share/fonts/truetype/arphic/uming.ttf -subfont-text-scale 3
如果还有其它更好更全的解决方法,欢迎大家探讨!
补充几点:
对于在Linux下用gedit都无法打开的字幕文件,则上述方法是无能为力的!
可以先到windows环境下用文本编辑器打开,另存为utf8格式,然后到Linux下再用gedit打开并另存为gb18030即可!
无论在配置文件还是命令行参数中:
(1) 如果使用选项-subcp cp936,则字幕文件必须另存为gb18030格式,否则字幕是不会正确显示的!
(2) 如果使用选项-subcp utf8,则字幕文件必须另存为utf8格式,否则字幕也是不会正确显示的!
因为utf8在Linux环境下更通用,所以建议大家还是应该使用第(2)种对应关系比较好!
在上面的配置选项中:
font_name = "/usr/share/fonts/truetype/arphic/uming.ttf"和
font = "/usr/share/fonts/truetype/arphic/uming.ttf" (本质意义是一样的)
都是指明字体的配置选项,就是直接指向到字体文件!
其实还有一种配置方式,就是指定字体名称!如以文泉驿字体为例,则上面的配置就变成了:
font_name = "WenQuanYi Bitmap Song"和
font = "WenQuanYi Bitmap Song"
这种配置方式好像更简单一些!
每种字体都有其自己的名称的,可以到系统->首选项->字体配置程序里查找各种字体的名称!
更多推荐
已为社区贡献1条内容
所有评论(0)