用語集

プレビュー時間とは何ですか

プレビュー時間 とは QuickTime ムービーヘッダー内の値です。ムービーの短いプレビューがどこから始まるかを示しており、多くのファイル(MP4 など)では 0 s が表示されます。

preview-time

プレビュー時間とは、映画のプレビューが始まる位置のことです。映画のプレビューは映画本編をとても短くしたもので、通常は5秒未満です。

ファイルでは、このプレビューを開始位置と長さという2つの値で定義します。プレビュー時間は開始位置、Preview Duration は長さです。各トラックには、そのプレビューでそのトラックを使うかどうかを示すフラグがあります。

どのファイルがそれを持っているか

プレビュー時間は、映画全体を記述する QuickTime ムービーヘッダー内にあります。ヘッダーには、映画のタイムスケールとDuration(再生時間)も含まれます。

QuickTime では、ファイルのこの部分を種類 mvhd の atom と呼びます。MP4 形式にも同じ種類のヘッダーがあり、これを box と呼びます。

メタデータリーダーの ExifTool は、QuickTime ファイルおよび QuickTime ベースと呼ぶ形式でこのヘッダーを読み取ります。例えば、次のようなファイルでプレビュー時間を表示できます。

  • MOV と QT(Apple QuickTime ムービー形式)
  • MP4(MPEG-4 ファイル形式)
  • M4A、M4B、M4P、M4V の音声および動画ファイル
  • 3GP および 3GPP の音声および動画ファイル
  • Adobe Flash Player 用の F4A、F4B、F4P、F4V ファイル
  • AAX(Audible Enhanced Audiobook 形式)

そのため、動画ではなくても、AAX のオーディオブックはプレビュー時間を表示できる場合があります。AVI ファイルはこれとは異なります。ExifTool は AVI を RIFF ベースと説明しており、その AVI の値一覧にはプレビュー時間が含まれていません。

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

ファイル内部では、プレビュー時間は 4 バイトの数値です。この数値は秒数ではなく、その映画のタイムスケールの単位数を表します。

タイムスケールとは、1秒あたりの単位数のことです。タイムスケールが 60 の場合、60 単位で 1 秒になります。

ExifTool は、保存されている数値をタイムスケールで割ります。その結果を、次の3つの形式のいずれかで時刻として表示します。

  • 保存されている数値が 0 の場合は 0 s
  • 30秒未満の場合は、小数第2位までの秒数と記号 s
  • 30秒以上の場合は、時間、分、秒をコロンで区切った形式

値の由来

ムービーファイルを書き込むソフトウェアがプレビュー時間を設定します。Apple の QuickTime ドキュメントでは、アプリケーションがプレビューの開始位置と長さを定義できる関数について説明しています。

MP4 ファイルは標準規格 ISO/IEC 14496-12 に基づいています。この規格では、ヘッダー内の同じ位置を pre_defined という名前にしており、その値を 0 に設定しています。メタデータリーダーはそれでもこのバイト列をプレビュー時間として表示できるため、MP4 ファイルでは通常 0 s と表示されます。

一部のソフトウェアは、ここに 0 を書き込みます。FFmpeg はこの場所に 0 を書き込み、「予約済み」として扱います。Chromium ブラウザプロジェクトの MP4 ライターも 0 を書き込みます。

FFmpeg は、ファイルを読むときにはこの値を読み飛ばします。そのため、FFmpeg の結果のみに依存するレポートには、プレビュー時間の行が含まれません。

ファイルにとって重要な理由

プレビュー時間は、Preview Duration と合わせて読む必要があります。0 s という値だけでは、その映画にプレビューがあるかどうかは分かりません。

Apple の QuickTime ドキュメントでは、映画にプレビューがない場合、関数は両方の値として 0 を返すと説明されています。Apple のサンプルコードも、映画にプレビューがあるかどうかを判断するために、Duration が 0 より大きいかどうかを確認しています。そのため、Preview Duration も 0 s の場合は、その映画にはプレビューがないということです。

類似の値との違い

プレビュー時間の近くには、似た名前の別の値もあります。それぞれ、異なる質問に答えるものです。

  • Preview Duration は、同じタイムスケールの単位で表したプレビューの長さです。
  • Poster Time は、映画のポスター(作品を代表する1枚の静止フレーム)の時刻です。
  • Preview Image Size は、ファイル内に含まれるプレビュー画像の幅と高さであり、時刻ではありません。

メタキー