Matroska文件的SSA/ASS Subtitle

1、SSA/ASS简单介绍

SSA全称SubStation Alpha, 是由CS Low(又称Kotus)创建的一种字幕格式,用以实现比传统字幕诸如srt等格式更为复杂的功能。SSA目前的版本为v4.00. SSA同时也是一款软件的名称,专用于创建和编辑SSA格式的字幕。ASS是一种比SSA更为高级的字幕格式,全称Advanced SubStation Alpha,实质是SSA v4.00+ 版本,它拥有比SSA更多的功能。

关于SSA/ASS字幕格式的详细说明,可以参考下面的文档:

http://www.perlfu.co.uk/projects/asa/ass-specs.doc 

我在人人影视下载了一个ASS格式的字幕,是一份中英双语字幕,摘录部分,如下:

----------------------------------------------------------------------------------------------------------------------------------

[Script Info]
; // The sub is created by AssToolkit
; // AssToolkit is an ASS Converter designed by David C.
; // 欢迎访问人人影视 http://www.YYeTs.com
Title:YYeTs
Original Script:YYeTs
Synch Point:0
ScriptType:v4.00+
Collisions:Normal
Timer:100.0000


[V4+ Styles]
Style: Default,方正黑体_GBK,21,&H00FFFFFF,&HF0000000,&H00000000,&HF0000000,0,0,0,0,100,100,0,0.00,1,2,1,2,5,5,5,134
Style: LOGO,微软雅黑,21,&H00FFFFFF,&HF0000000,&H0D0D0D&,&H00000000,0,0,0,0,100,100,1,0.00,1,2,0,2,30,30,5,134
Style: sub,方正黑体简体,21,&H00FFFFFF,&HF0000000,&H006C3300,&H00000000,-1,0,0,0,100,100,0,0,1,2,1,2,5,5,5,134


[Events]
Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.10,0:00:02.20,*Default,NTP,0000,0000,0000,,{\an8}[前情提要]
Dialogue: 0,0:00:00.63,0:00:01.96,*Default,NTP,0000,0000,0000,,乌鸦能让你开眼\N{\fn微软雅黑}{\fs14}{\b0}{\fsp0}{\c&HFFFFFF&&}{\3c&000000&}The raven brings the sight.

-----------------------------------------------------------------------------------------------------------------------------------

2、Matroska文件的SSA/ASS字幕

上面说的是外置字幕,作为单独的文件存在。那么,SSA/ASS字幕作为内置字幕是如何存放在Matroska文件中的呢?

在Matroska文件中,无论是SSA/ASS类型的字幕,还是SRT类型的字幕,都是作为一个单独的Track存在的。SSA/ASS字幕保存在Matroska文件中,有如下四个方面的工作:

(1)所有内容全部转化成UTF-8格式;

(2)所有的头信息,保存在CodecPrivate在,包括Script Info和Styles list;

(3)Events中的Start和End两个field会被提取出来,Start设置给timecode,End - Start的值设置给BlockDuration;

(4)Events中剩下的field按照一定的顺序保存在block中。需要说明的一点是,需要在Layer field前面添加一个ReadOrder field。

以上面的例子为例说明一下:

(1)保存在CodecPrivate中的内容

---------------------------------------------------------------------------------------------------------------------------------

[Script Info]
; // The sub is created by AssToolkit
; // AssToolkit is an ASS Converter designed by David C.
; // 欢迎访问人人影视 http://www.YYeTs.com
Title:YYeTs
Original Script:YYeTs
Synch Point:0
ScriptType:v4.00+
Collisions:Normal
Timer:100.0000


[V4+ Styles]
Style: Default,方正黑体_GBK,21,&H00FFFFFF,&HF0000000,&H00000000,&HF0000000,0,0,0,0,100,100,0,0.00,1,2,1,2,5,5,5,134
Style: LOGO,微软雅黑,21,&H00FFFFFF,&HF0000000,&H0D0D0D&,&H00000000,0,0,0,0,100,100,1,0.00,1,2,0,2,30,30,5,134
Style: sub,方正黑体简体,21,&H00FFFFFF,&HF0000000,&H006C3300,&H00000000,-1,0,0,0,100,100,0,0,1,2,1,2,5,5,5,134

-------------------------------------------------------------------------------------------------------------------------------

(2)保存在timecode与BlockDuration中的内容

上面的例子中给出了对应的两句字幕,因此相应的内容也会被保存在两个Block中。

第一个block:

timecode               0:00:00.100

BlockDuration      0:00:02.100

第二个block:

timecode               0:00:00.630

BlockDuration      0:00:01.330

(3)保存在block中的数据

这部分数据作为媒体数据保存在block中,和保存video、audio媒体数据一样。

第一个block:

0,0,*Default,NTP,0000,0000,0000,,{\an8}[前情提要]

第二个block:

1,0,*Default,NTP,0000,0000,0000,,乌鸦能让你开眼\N{\fn微软雅黑}{\fs14}{\b0}{\fsp0}{\c&HFFFFFF&&}{\3c&000000&}The raven brings the sight.

开头的0和1是ReadOrder,这部分在SSA/ASS文件中是不存在的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值