3

W3C TTML dfxp 标准中,一个div元素可以包含begin,endduration属性。

如何解读这些时序属性的值?

例子:

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

4

3 回答 3

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则相对于他们的兄弟姐妹或第一个孩子的父母计算时间。

在您的示例中,我们假设默认的标准时间容器具有连续的标记模式。然后每个 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 上都加上时间。如果你愿意,你也可以把时间放在身体和跨度上。

于 2015-04-22T14:45:17.153 回答
0

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

所以这个 TTML 根本不会显示任何东西。

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

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

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

于 2014-04-16T13:38:41.957 回答
0

下面是它的工作原理:

  • TTML 绑定到指定的音频/视频剪辑
  • 音频/视频剪辑从 00:00:00.0 开始
  • TTML 中的文本节点在指定时间显示
  • begin="0s" 告诉玩家Hi,在 00:00:00.0显示文本
  • end="1s" 告诉玩家隐藏Hi,00:00:01.0 处的文本
  • begin="3s" 告诉玩家Hello在 00:00:03.0显示文本
  • end="5s" 告诉玩家Hello在 00:00:05.0显示文本
  • begin="5s" 告诉玩家there?在 00:00:05.0显示文本
  • end="10s" 告诉玩家there?在 00:00:10.0显示文本
于 2013-10-17T19:35:20.720 回答