mplayer 加载中文.srt字幕总结

Totem,mplayer,sopcast,realplayer,bmp
jowen
帖子: 4
注册时间: 2007-08-14 14:02

mplayer 加载中文.srt字幕总结

#1

帖子 jowen » 2007-09-04 23:14

今天终于解决了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的影片,字幕可以放在下面的黑框中

+---------------------------
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2007-09-04 23:56

竟然知道enca。怎么不知道enconv啊。
多方便啊。
全部utf8方案就是。
● 鸣学
jowen
帖子: 4
注册时间: 2007-08-14 14:02

#3

帖子 jowen » 2007-09-05 0:37

网上一堆的都是说要设定subcp = cp936。真是一知半解害人不浅。
明明是要跟.srt文件的编码对应一致才可以的阿
如果.srt 是gb2312, supcp = gb2312
ukvk
帖子: 22
注册时间: 2008-01-11 23:58

#4

帖子 ukvk » 2008-02-23 17:41

这可怎么办?
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
头像
hualang0929
帖子: 1226
注册时间: 2006-11-11 10:23
来自: Mars
联系:

#5

帖子 hualang0929 » 2008-02-23 18:23

enconv 啊,还 iconv :lol:
抬头望星空一片晴,我独行,夜已渐寒……
ukvk
帖子: 22
注册时间: 2008-01-11 23:58

#6

帖子 ukvk » 2008-02-23 18:44

一样的效果阿
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.
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#7

帖子 eexpress » 2008-02-23 19:01

☎ locale|grep LC_CTYPE
LC_CTYPE="zh_CN.UTF-8"

你们的这个变量难道是空? man enconv里面的LANGUAGES 部分,都说明了的。
● 鸣学
ukvk
帖子: 22
注册时间: 2008-01-11 23:58

#8

帖子 ukvk » 2008-02-23 19:47

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
ildg
帖子: 438
注册时间: 2007-11-26 13:38

#9

帖子 ildg » 2008-03-12 11:08

从命令行播放,
字幕是什么编码,就用什么编码。
简体用-subcp gb18030,
繁体用-subcp big5
vvvli
帖子: 441
注册时间: 2006-10-26 7:02

#10

帖子 vvvli » 2008-03-12 11:45

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总有奇怪的问题。
firefoxmmx
帖子: 407
注册时间: 2006-07-28 8:51

#11

帖子 firefoxmmx » 2008-03-12 16:34

个人认为最方便的是GEDIT , 打开字幕文件,另存为,选好要的编码覆盖原来的文件(默认就是这样)
头像
cnshzj007
帖子: 685
注册时间: 2006-05-24 21:38
来自: 上海
联系:

#12

帖子 cnshzj007 » 2008-05-07 23:04

firefoxmmx 写了:个人认为最方便的是GEDIT , 打开字幕文件,另存为,选好要的编码覆盖原来的文件(默认就是这样)
你的最简单,最有用。我要顶你。
我只是一个ARCH的FANS,来自RH和UBUNTU的滋润!
kazefsh
帖子: 52
注册时间: 2007-12-09 20:20

#13

帖子 kazefsh » 2008-05-10 19:06

firefoxmmx 写了:个人认为最方便的是GEDIT , 打开字幕文件,另存为,选好要的编码覆盖原来的文件(默认就是这样)
我也是这样的,不过最好将编码改成gb18032那个最好,utf-8也会有个别字乱码
头像
新手
帖子: 461
注册时间: 2007-01-22 23:23
来自: 42 39'18.85"N,94 10'00.80"E

#14

帖子 新手 » 2008-05-10 19:07

ildg 写了:从命令行播放,
字幕是什么编码,就用什么编码。
简体用-subcp gb18030,
繁体用-subcp big5
全部的命令是什么?我想试试。这个问题一直没解决。
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

#15

帖子 hcym » 2008-05-10 20:04

终于解决了
:roll:
回复