用語集

開始時間とは?

ファイルに「開始時刻」というフィールドがある場合、それはどういう意味でしょうか?「開始時刻」が何を表し、なぜその値がマイナスになることさえあるのかについて、続きを読んで確認してください。

start-time

Start Time は、ファイル内部のクロック上でストリームの再生が開始されるべき位置を指します。ほとんどのファイルではその位置は単に 0 ですが、必ずしもそうである必要はなく、この値によって、最初のフレームや最初の音声サンプルが時間上のどこに属するかが示されます。

どのファイルがそれを保持しているかと、その値の由来

Start Time は特に MP4、MOV、AVI、MKV などの動画ファイルや、テレビ録画で使われる MPEG トランスポートストリームで重要です。音声ファイルにも含まれます。1 つのファイルには複数のストリーム (映像、音声、場合によっては字幕) が含まれており、それぞれに個別の Start Time があり、さらにファイル全体としての Start Time も別に持ちます。

この値は、ファイルを生成したプログラム、つまりエンコーダー、レコーダー、カメラによって書き込まれます。人が手動で設定するものではありません。

同じ情報は、通常 PTS (Presentation Time Stamp) と呼ばれる別の形式でも記録されます。Start Time は秒単位で表されますが、開始 PTS はストリーム固有のクロックの「チック」を数えた値で、その長さは Time Base と呼ばれる別のフィールドで決まります。どちらも同じ瞬間を指しています。

その値がどのように表示されるか

時間は秒で表され、通常は小数点以下まで表示されます。

  • 0.000000 - 一般的なケースで、ストリームが最初から始まることを示します
  • 0.021333 - 数百分の 1 秒程度の小さなオフセットです
  • 1.400000 以上 - 放送録画でよく見られる値で、クロックが 0 からではなく入力ストリームの続きとして進んでいることを示します
  • 負の値は、ストリームがファイルのゼロ地点より少し前から始まるよう印が付けられていることを意味します

小さなオフセットや負の値は、通常は不具合ではありません。圧縮音声コーデックは、実際の音が出る前に、いくつかのサンプルを「助走」として必要とし、そのリードインをどこかで帳尻合わせする必要があります。Start Time のオフセットは、プレーヤーがその部分を捨てつつも、音声と映像の同期を保てるよう、ファイル側でそれを記録する方法です。フレームが欠けていることを意味するわけではありません。

それが重要な理由

このフィールドが実務上重要になるのは同期のためです。ファイル内で映像と音声が異なる Start Time を持っている場合、両方を読み取って尊重するプレーヤーはそれらを揃えて再生しますが、この情報を無視するアプリは、そのオフセット分だけ音声をずらして再生します。原因がはっきりしない、わずかなコンマ数秒の口パクずれの多くは、ファイルのどこかにある Start Time に行き着きます。

編集においても重要です。カット、結合、再ラップなどの操作を行うと、これらのタイムスタンプが破棄・書き換えられます。そのため、録画から切り出したクリップで字幕が少しずれてしまったり、設定した位置からわずかにずれた位置でカットされてしまったりします。Start Time が 0 でない場合、あるプログラムは最後のタイムスタンプまでを長さとして計測し、別のプログラムはそこから Start Time を差し引いて計測するため、同じファイルでも長さの表示が食い違う理由にもなります。

このフィールドには、いかなる種類の個人情報も含まれません。

メタキー