3

W3C TTML dfxp standardでは、div要素にbeginendおよび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 仕様/実装へのポインターは役に立ちます。

4

3 に答える 3

4

最新の 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 の両方に時間を入れる必要はありません。お好みでボディやスパンにもタイムを入れていただけます。

于 2015-04-22T14:45:17.153 に答える
0

タイムスタンプは絶対として扱われます。あなたの場合、22秒から30秒まで表示される親divがありますが、すべての子要素には22秒より前の時間間隔があります。

したがって、この TTML には何も表示されません。

時間式の形式については、仕様のこのセクションをご覧ください - 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」の 1 つまたはすべてが指定されていない場合があり、その場合、その終了はオープンと見なされます。したがって、「begin」がない場合、時間間隔は「0」から始まります。「begin」があり、「end」または「duration」がない場合は、指定された時刻に開始され、その後は常に表示されます。

于 2014-04-16T13:38:41.957 に答える