分页: 1 / 3

mplayer 加载中文.srt字幕总结

发表于 : 2007-09-04 23:14
jowen
今天终于解决了mplayer 加载中文.srt字幕的问题,特地来做个小结,希望能对你有所帮助。
以前遇到的问题:
中文.srt字幕加载 只是出现 ____12__ ,不能正常显示中文
解决办法:
1.安装ttf中文字体,可以参照 安装 windows 字体 的文章
我用的 windows的字体,放在 /usr/share/fonts/zh_CN, 有simsun.ttc,simhei.ttf,smyh.ttf 等
2. 在~/.mplayer/config 中指定 字体
font=/usr/share/fonts/zh_CN/msyh.ttf
指定编码
subcp=utf8 #支持中文字幕

我用的是 雅黑,你也可以用 simhei.ttf 等其他字体

3. 为了统一编码,减少麻烦。我都将 字幕文件转化 为 utf8 编码
转换之前可以 用 enca file.srt 查看编码 (enca 可以用apt-get 安装)
再用 iconv 转化编码。 比如你的字幕文件名字为 abc.srt
enca abc.srt 得到 编码 为 gbk
mv abc.srt abc.srt.bak
iconv -f gbk -t utf8 abc.srt.bak > abc.srt
然后 mplayer abc.avi 就可以了。
注意 subcp 和 字幕文件的编码要一致,不然就会出现 _____ 的情况。
最后附上我 的./mplayer/config 文件,希望对大家有所帮助
+----------------------------

# Write your default config options here!

joystick=no #不加载游戏手柄的控制
#fs=yes #支持全屏
unicode=1
font=/usr/share/fonts/zh_CN/msyh.ttf
zoom=yes #支持缩放
subcp=utf8 #支持中文字幕
subfont-autoscale=2 #字幕占屏幕的大小
subfont-text-scale=3 #设置字幕文本的自动缩放系数(屏幕尺寸的百分比),值范围为0~100,默认值为5
subfont-osd-scale=8 #OSD字幕的自动缩放系统(屏幕尺寸的百分比),值范围为0~100,默认值为6
# font = /home/liunian/.mplayer/subfont.ttf #选择字体
overlapsub=1 #支持多语言字幕
sub-fuzziness=1 #设定字幕自动加载的识别
osdlevel=3 #在屏幕的左上角显示相应时间等
vf=expand=:::::4/3:2 #如果是16:9的影片,字幕可以放在下面的黑框中

+---------------------------

发表于 : 2007-09-04 23:56
eexpress
竟然知道enca。怎么不知道enconv啊。
多方便啊。
全部utf8方案就是。

发表于 : 2007-09-05 0:37
jowen
网上一堆的都是说要设定subcp = cp936。真是一知半解害人不浅。
明明是要跟.srt文件的编码对应一致才可以的阿
如果.srt 是gb2312, supcp = gb2312

发表于 : 2008-02-23 17:41
ukvk
这可怎么办?
theo@theo-laptop:~$ enca abc.srt
enca: Cannot determine (or understand) your language preferences.
Please use `-L language', or `-L none' if your language is not supported
(only a few multibyte encodings can be recognized then).
Run `enca --list languages' to get a list of supported languages.
我的编码不够全吗?
theo@theo-laptop:~$ enca --list languages
belarussian: CP1251 IBM866 ISO-8859-5 KOI8-UNI maccyr IBM855
bulgarian: CP1251 ISO-8859-5 IBM855 maccyr ECMA-113
czech: ISO-8859-2 CP1250 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
estonian: ISO-8859-4 CP1257 IBM775 ISO-8859-13 macce baltic
croatian: CP1250 ISO-8859-2 IBM852 macce CORK
hungarian: ISO-8859-2 CP1250 IBM852 macce CORK
lithuanian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
latvian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
polish: ISO-8859-2 CP1250 IBM852 macce ISO-8859-13 ISO-8859-16 baltic CORK
russian: KOI8-R CP1251 ISO-8859-5 IBM866 maccyr
slovak: CP1250 ISO-8859-2 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
slovene: ISO-8859-2 CP1250 IBM852 macce CORK
ukrainian: CP1251 IBM855 ISO-8859-5 CP1125 KOI8-U maccyr
chinese: GBK BIG5 HZ
none:
我输-L language也不行啊
theo@theo-laptop:~$ -L language
bash: -L: command not found

发表于 : 2008-02-23 18:23
hualang0929
enconv 啊,还 iconv :lol:

发表于 : 2008-02-23 18:44
ukvk
一样的效果阿
theo@theo-laptop:~$ enconv abc.srt
enconv: Cannot determine (or understand) your language preferences.
Please use `-L language', or `-L none' if your language is not supported
(only a few multibyte encodings can be recognized then).
Run `enconv --list languages' to get a list of supported languages.

发表于 : 2008-02-23 19:01
eexpress
☎ locale|grep LC_CTYPE
LC_CTYPE="zh_CN.UTF-8"

你们的这个变量难道是空? man enconv里面的LANGUAGES 部分,都说明了的。

发表于 : 2008-02-23 19:47
ukvk
theo@theo-laptop:~$ locale|grep LC_CTYPE
LC_CTYPE="en_US.UTF-8"
theo@theo-laptop:~$
我咋办?
补充:我的encoding选项里中文只有CP936和BIG5,反复选了很多次了,srt字幕都是乱码,我想只有用你们讲的办法先确定字幕编码...
字幕是从射手网下的http://file0.shooter.cn/?hash=e08f4e5db ... 79032a5a47

发表于 : 2008-03-12 11:08
ildg
从命令行播放,
字幕是什么编码,就用什么编码。
简体用-subcp gb18030,
繁体用-subcp big5

发表于 : 2008-03-12 11:45
vvvli
ukvk 写了:
theo@theo-laptop:~$ locale|grep LC_CTYPE
LC_CTYPE="en_US.UTF-8"
theo@theo-laptop:~$
我咋办?
补充:我的encoding选项里中文只有CP936和BIG5,反复选了很多次了,srt字幕都是乱码,我想只有用你们讲的办法先确定字幕编码...
字幕是从射手网下的http://file0.shooter.cn/?hash=e08f4e5db ... 79032a5a47
LC_CTYPE="zh_CN.utf8" enconv xxx

不过enconv很危险,不止一次转utf16的把字幕腰斩了。。

还是iconv好

然后,要用smplayer ,gmplayer总有奇怪的问题。

发表于 : 2008-03-12 16:34
firefoxmmx
个人认为最方便的是GEDIT , 打开字幕文件,另存为,选好要的编码覆盖原来的文件(默认就是这样)

发表于 : 2008-05-07 23:04
cnshzj007
firefoxmmx 写了:个人认为最方便的是GEDIT , 打开字幕文件,另存为,选好要的编码覆盖原来的文件(默认就是这样)
你的最简单,最有用。我要顶你。

发表于 : 2008-05-10 19:06
kazefsh
firefoxmmx 写了:个人认为最方便的是GEDIT , 打开字幕文件,另存为,选好要的编码覆盖原来的文件(默认就是这样)
我也是这样的,不过最好将编码改成gb18032那个最好,utf-8也会有个别字乱码

发表于 : 2008-05-10 19:07
新手
ildg 写了:从命令行播放,
字幕是什么编码,就用什么编码。
简体用-subcp gb18030,
繁体用-subcp big5
全部的命令是什么?我想试试。这个问题一直没解决。

发表于 : 2008-05-10 20:04
hcym
终于解决了
:roll: