最新の TTML 仕様はhttp://www.w3.org/TR/ttml1/にあります。
タイミング セマンティクスの多くはSMIL 2.1に由来します。
あなたの答えには 2 つの部分があります。まず、特定のコンテンツ要素の時間をどのように計算しますか。次に、これらの時間を再生用の他のタイムラインにどのように関連付けますか。
時間値の計算
時間の計算は、いくつかのことに依存します。まず、時間の計算が可能な timeBase と markerMode で作業していると仮定できますか? これは、1 つのシナリオを除くすべてのシナリオに適用されるため、ある場合、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
、すべての時間は単なるイベント マーカーです。その場合、メディアでタイム コード値を確認すると、必要に応じてコンテンツ要素を開始または終了します。
他のもの
時間式自体の評価については触れていません。ティックレートでのティック、フレームレートでのフレーム、時間、分、分数など、いくつかの構文を使用できます。
現地時間も許可されます。
in seq timeContainers 兄弟は時間的に重複できません。seq timeContainers で可能です。
与えられた例では、div と p の両方に時間を入れる必要はありません。お好みでボディやスパンにもタイムを入れていただけます。