首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >W3C TTML时序属性说明

W3C TTML时序属性说明
EN

Stack Overflow用户
提问于 2013-07-03 22:14:08
回答 3查看 537关注 0票数 3

W3C TTML dfxp standard中,div元素可以包含beginendduration属性。

如何解释这些计时属性的值?

示例:

代码语言:javascript
复制
<div begin="00:00:22.0 end ="00:00:30.0">
   <p begin="0s" end="1s">Hi,</p>
   <p begin="3s" end="5s">Hello</p>
   <p begin="5s" end="10s">there?</p>
</div>

什么时候显示p元素?

任何指向TTML规范/实现的指针都会很有帮助。

EN

回答 3

Stack Overflow用户

发布于 2015-04-22 22:45:17

最新的TTML规范在http://www.w3.org/TR/ttml1/上,许多计时语义都来自SMIL 2.1

你的答案有两个部分:第一,如何计算任何特定内容元素的时间;第二,如何将这些时间与其他用于回放的时间线相关联。

计算时间值

时间的计算取决于几件事。首先,我们可以假设您正在使用允许计算时间的timeBase和markerMode吗?这适用于除一个场景之外的所有场景,因此如果您有timeBase="media"timeBase="clock",则可以。另外,如果你有timeBase="smpte"markerMode="continuous"。例外的是,如果你在smpte discontinuous中。

其次,您需要知道父元素上timeContainer属性的值。默认情况下,它是par,这意味着时间是相对于父元素的时间计算的。如果为seq,则时间是相对于它们的同级计算的,或者是相对于第一个子级的父级计算的。

在您的示例中,让我们假设具有连续markerMode的par timeContainer的默认值。然后,每个p的计算时间是它的时间加上父div的开始时间,并被父div的结束时间修剪,给出:

代码语言:javascript
复制
<div begin="00:00:22.0 end ="00:00:30.0">
   <p begin="0s" end="1s">Hi,</p> <-- 00:00:22 -> 00:00:23
   <p begin="3s" end="5s">Hello</p> <-- 00:00:25 -> 00:00:27
   <p begin="5s" end="10s">there?</p> <-- 00:00:27 -> 00:00:30 (cut off by parent)
</div>

与回放相关的时间

这里要看的规范中最好的部分可能是附录N。您计算的时间值的解释取决于ttp:timeBase的值

  • clock表示它们与某个地方的真实时钟有关,例如协调世界时或全球定位系统clock.
  • media表示它们与视频文件等其他媒体中的时间有关。时间0通常与媒体的开始有关,如果需要映射到帧值,则需要知道帧速率etc.
  • smpte意味着它们与其他媒体中的时间代码相关。如果您有discontinuous ttp:markerMode,则所有时间都只是事件标记:在这种情况下,当您在媒体中看到时间代码值时,您可以根据需要开始或结束内容元素。

其他东西

我没有提到评估时间表达式本身--有几种可用的语法,包括滴答率的刻度,帧率的帧,小时分钟和分钟的分数等等。

当地时间也是允许的。

在seq timeContainers中,兄弟不能在时间上重叠;在seq timeContainers中,它们可以重叠。

在给出的示例中,不需要同时在div和p上放置时间。如果你喜欢,你也可以把时间放在正文和跨度上。

票数 4
EN

Stack Overflow用户

发布于 2013-10-18 03:35:21

下面是它的工作原理:

  • TTML绑定到指定的音频/视频剪辑
  • 音频/视频剪辑开始于00:00:00.0
  • TTML中的文本节点显示在指定的代码位置告诉播放器在00:00:00.0显示文本代码Hi,
  • end="1s“告诉播放器隐藏文本<Hi,>d11>告诉播放器在00:00:03显示文本<

>d14>.0

  • end="5s“告诉播放器在00:00:05.0显示文本Hello
  • begin="5s”告诉播放器在00:00:05.0显示文本there?
  • end="10s“告诉播放器在00:00:10.0显示文本there? <代码>H224<代码>F225
票数 0
EN

Stack Overflow用户

发布于 2014-04-16 21:38:42

时间戳被视为绝对时间戳。在您的例子中,您有父div,它将显示在22秒到30秒之间,但是,所有子元素的时间间隔都在22秒之前。

有关时间表达式的格式,请参阅spec - http://www.w3.org/TR/ttaf1-dfxp/#timing-value-timeExpression中的这一节

时间戳00:00:30.0表示0小时0分30秒及之后“。是秒的分数。可能会有另一个":“,这意味着帧编号,如果有”“,而不是几秒。在帧编号之后,它将指定子帧。帧率和子帧由ttp:frameRate或ttp:subFrameRate定义(有关更多详细信息,请参阅规范。

通常只有"end“或"duration”属性。但是,可能没有指定"begin"/" end "/"duration“中的一个或全部,在这种情况下,该结束将被视为开放。因此,如果没有"begin“,则时间间隔将从"0”开始。如果有"begin",但没有"end“或"duration",那么它将在指定的时间开始,并始终显示在指定时间之后。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17450411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档