- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在W3C TTML dfxp standard ,div
元素可以包含 begin
、end
和 duration
属性。
如何解读这些时序属性的值?
例子:
<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 规范/实现的指针都会有所帮助。
最佳答案
最新的 TTML 规范位于 http://www.w3.org/TR/ttml1/许多时序语义来自 SMIL 2.1 .
您的答案分为两部分:首先,您如何计算任何特定内容元素的时间;其次,您如何将这些时间与其他播放时间轴联系起来。
时间的计算取决于几件事。首先,我们可以假设您在允许时间计算的 timeBase 和 markerMode 中工作吗?这适用于除一种情况之外的所有情况,因此如果您有 timeBase="media"
或 timeBase="clock"
那么您可以。此外,如果您有 timeBase="smpte"
和 markerMode="continuous"
。如果您处于 smpte discontinuous
中,则异常(exception)。
其次,您需要知道父元素上的timeContainer
属性的值。默认情况下它是 par
这意味着时间是相对于父元素的时间计算的。如果它是 seq
,那么时间是相对于他们的 sibling 计算的,或者对于第一个 child 来说是相对于 parent 计算的。
在您的示例中,我们假设默认的 par timeContainer 具有连续的 markerMode。然后每个 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 siblings 中不能在时间上重叠;在 seq timeContainers 他们可以。
在给定的示例中,不需要在 div 和 p 上都加上时间。如果你愿意,你也可以在 body 和 span 上加上时间。
关于specifications - W3C TTML时序属性解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17450411/
我有一个页面,我想使用 PopcornJS 插入带有 TTML 字幕的视频元素,如 this Fiddle 中所示。 。除了字幕外,一切正常。他们不表现出来。当我做类似 的事情时字幕工作正常。 所以
在不使用 javascript 的情况下使用显示 vtt 或 ttml 作为带有 html 5 音频标签的轨道元素? IE。有没有办法在音频标签中将 vtt 或 ttml 显示为闭合阳 ionic
我有一个 .srt 字幕文件。我想使用 ffmpeg 命令将其转换为 .ttml 格式(或 xml)。我尝试使用传统方式来转换它。但是 ffmpeg 抛出一个错误。有什么办法可以在 Linux 平台上
我是一名优秀的程序员,十分优秀!