欢迎你客人 ( 登录 | 注册 )

  评价 ---

 | 分类: GUN
entry 2007-11-3, 02:01 AM
首发在LinuxSir.org 地址: http://www.linuxsir.org/bbs/showthread.php?t=315802

以下内容没有在gmplayer等其他mplayer外壳下测试过。
我的系统用的zh_CN.UTF-8环境,如果您用的其他字符编码环境,可能需要做些调整 :ask

一、相关配置文件
1、mplayer自身的配置文件
$HOME/.mplayer/config 文件的内容
代码

# Write your default config options here!
#alias mplayer='mplayer -stop-xscreensaver -zoom -vo gl2'
unicode=1
slang=zh
stop-xscreensaver=1
zoom=1
#if your graphic card support opengl , you can use vo=gl2
vo=xv
ao=alsa
ontop=1
#good exclude H264 Video codec
vf=expand=:::::4/3:2
fs=1

subcp=cp936
#subcp=utf-8
font=SimHei
ass=1
ass-styles= $HOME/.mplayer/my.ass
# use up style file no need this scale param
#ass-font-scale=2.5


2、字幕样式配置
$HOME/.mplayer/my.ass 的字幕格式设置内容如下(这里说明一下为什么用ssa字幕格式设置文件,因为我发现使用了ssa的字幕格式文件设置后,srt和ssa的字幕都可以又mplayer自动进行换行处理。注意,如果你下载的字幕的文件扩展名是ass,不是ssa,请修改为ssa,否则字幕无法加载
代码

[Script Info]
ScriptType:v4.00+

[V4+ Styles]
Format: Name    , Fontname, Fontsize,   PrimaryColour,  SecondaryColour,    OutlineColour,  BackColour, Bold,   Italic, Underline,  StrikeOut,  ScaleX, ScaleY, Spacing,    Angle,  BorderStyle,    Outline,    Shadow, Alignment,  MarginL,    MarginR,    MarginV,    Encoding
Style:  Default , SimHei,   20,         &H00FFFFFF,     &HF0000000,         &H00000000,     &HF0000000, 0,      0,      0,          0,          100,    100,    0,          0.00,   1,              1,          0,      2,          30,         30,         10,         1


二、字幕和电影的配合使用说明


1、按照我上面的设置,字幕的字符集必需是gb2312或者gbk。其他字符集的需要将srt字幕文件的编码格式进行转换。
2、如果希望字幕自动加载需要将字幕的文件名和电影的文件名一致,除了扩展名外
3、经过这样设置后,请直接使用mplayer命令,或者将文件类型的打开方式选择使用mplayer,而不要使用gmplayer,(因为我没有怎么用gmplayer,不知有其他问题没有 wink.gif

三、mplayer 的常用功能的命令

1、音量调整
9=减小 0=增加

2、全屏开关
f

3、退出
<Esc> 或者 q

4、字幕和视频的配合
z 推迟字幕显示
x 加速字幕显示

四、常见媒体播放问题

1、字幕乱码
应该是你没有转换字符集的问题。
常用的转换命令:
iconv -fbig5 -tgb2312 xxx.srt > yyy.srt (这个转换有时会因为有些字符转换失败导致无法生成完整的yyy.srt字幕,注意转换后如果有报错,这时需要你修改一下xxx.srt字幕的那个出错的行的相关文字。闲麻烦可以用下面的命令,只不过你看的字体都是繁体就是了。)
iconv -fbig5 -tcp936 xxx.srt > yyy.srt

2、字幕不显示
分2种常见情况,
1) 一个是srt字幕用vim打开,发现格式中的“ --> ”和下一行的字幕内容中间多了空行
如下:
代码
1
00:01:14,500 --> 00:01:19,460

片名:情书

2
00:02:57,603 --> 00:03:01,562

今天在百忙之中



a)如果是这个情况,vim可以直接解决,请输入如下命令:
代码

:%g/-->/j


cool.gif结果应该是下面的样子:
代码

1
00:01:14,500 --> 00:01:19,460
片名:情书

2
00:02:57,603 --> 00:03:01,562
今天在百忙之中


c) 保存退出就ok了。
代码

:w


2)vim打开,发现格式很正常
这时最大的可能就是字幕文件含有大量的"\0"字符。这些字符看不见,但会影响字幕的解析,程序员知道这个"\0"是结束的标志。
怎么删除?
我的一个笨办法:
a)用vim打开,输入命令
代码
ggVGy

这样就把所有的有效字幕内容拷贝了
cool.gif不关闭vim,直接建立一个新文件
代码
:new

c)下面将这些内容贴到新文件中
代码
p

d)注意这时需要设置一下字幕文件的编码
代码
:set fileencoding=cp936

e)保存为文件xxx
代码
:w xxx


这时你可以 ls -l 看看两个字幕文件是否大小不一样了。 如果新文件明显小了那么说明你搞定了 smile.gif 如果没有变化,那么我就真的 tongue.gif

  Fast Reply Reply to this topic

« 前一篇文章 · 听峰's Blog · 后一篇文章 »
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31



我的 Blog 链接