W3C TTML定时属性的说明

时间:2013-07-03 14:14:08

标签: specifications ttml

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

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

示例:

<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规范/实现的指针都会有所帮助。

3 个答案:

答案 0 :(得分:4)

最新的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的结束时间剪切,给出:

<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表示它们与某个地方的某个真实时钟有关,例如UTC或GPS时钟。
  • media表示它们与某些其他媒体(如视频文件)中的时间相关。时间0通常与媒体的开头有关,如果你需要映射到帧值,那么你需要知道帧速率等。
  • smpte表示它们与其他媒体中的时间码相关。如果您有discontinuous ttp:markerMode,那么所有时间都只是事件标记:在这种情况下,当您在媒体中看到时间码值时,您可以根据需要开始或结束内容元素。

其他东西

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

也允许当地时间。

在seq timeContainers中,兄弟姐妹不能及时重叠;在seq timeContainers中他们可以。

在给出的示例中,不需要在div和p上放置时间。如果你愿意的话,你也可以把时间放在身体和跨度上。

答案 1 :(得分:0)

以下是它的工作原理:

  • TTML绑定到指定的音频/视频片段
  • 音频/视频片段从00:00:00.0
  • 开始
  • TTML中的文本节点在指定时间显示
  • begin =“0s”告诉玩家在00:00:00.0显示文字Hi,
  • end =“1s”告诉玩家在00:00:01.0隐藏文字Hi,
  • begin =“3s”告诉玩家在00:00:03.0显示文字Hello
  • end =“5s”告诉玩家在00:00:05.0显示文字Hello
  • begin =“5s”告诉玩家在00:00:05.0显示文字there?
  • end =“10s”告诉玩家在00:00:10.0显示文字there?

答案 2 :(得分:0)

时间戳被视为绝对值。在你的情况下,你有父div将显示从第22秒到第30秒,但是,所有子元素的时间间隔都在第22秒之前。

所以这个TTML根本不会显示任何内容。

有关时间表达式的格式,请参阅规范中的此部分 - http://www.w3.org/TR/ttaf1-dfxp/#timing-value-timeExpression

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

通常只有&#34;结束&#34;或者&#34;持续时间&#34;属性。然而,一个或所有&#34;开始&#34; /&#34;结束&#34; /&#34;持续时间&#34;可能没有指定,在这种情况下,该结束将被视为开放。所以,如果没有&#34;开始&#34;然后时间间隔将从&#34; 0&#34;开始。如果有&#34;开始&#34;,但没有&#34;结束&#34;或者&#34;持续时间&#34;,然后它将在指定的时间开始,并在此之后始终显示。