タイムコードとドロップフレームの仕組み
タイムコード(HH:MM:SS:FF)とは
タイムコードは、動画の位置を「時:分:秒:フレーム」で表す書き方です。たとえば 00:01:23:15 は、1 分 23 秒と 15 フレームの位置を表します。秒の下の単位がフレームなので、30 fps の動画なら FF は 00〜29、60 fps なら 00〜59 まで数えます。
秒やミリ秒と違い、1 コマ単位で位置を正確に指定できるため、映像の編集や確認のやり取りで使われています。
ノンドロップ(NDF)の数え方
ノンドロップ(NDF)は、フレーム番号をそのまま時・分・秒・フレームに直す数え方です。1 秒を「公称のフレーム数」として数えます(29.97 fps なら 30、59.94 fps なら 60、23.976 fps なら 24)。
例: 30 fps の動画のフレーム 1800 は、1800 ÷ 30 = 60 秒なので 00:01:00:00 です。
29.97 fps でタイムコードがずれる理由
日本や北米のテレビ放送に由来する 29.97 fps(正確には 30000/1001 fps)は、1 秒あたり 30 コマより少しだけ少ないフレームレートです。ノンドロップでは 1 秒を 30 コマとして数えるため、タイムコードが実際の経過時間より少しずつ遅れます。
1 時間(実時間)で記録されるフレーム数は約 107,892 コマですが、30 コマ = 1 秒として数えると 107,892 ÷ 30 ≈ 3596.4 秒、つまり 1 時間で約 3.6 秒遅れます。
ドロップフレーム(DF)の仕組み
ドロップフレーム(DF)は、このずれを補うために、毎分の先頭でフレーム番号を 2 つ飛ばす数え方です(59.94 fps では 4 つ)。ただし、10 分ごと(0 分・10 分・20 分…)は飛ばしません。
00:00:59;29の次は00:01:00;02(;00 と ;01 を飛ばす)00:09:59;29の次は00:10:00;00(10 分ちょうどは飛ばさない)
1 時間で飛ばす番号は 2 × 54 = 108 個で、ちょうど 3.6 秒分(108 ÷ 30)になり、タイムコードと実際の経過時間がほぼ一致します。飛ばすのは番号だけで、フレーム(映像)は 1 枚も捨てていません。ドロップフレームであることが分かるよう、秒とフレームの区切りには「;」を使います。
このツールでの表示
Video Inspector Pro は、タイムコードをフレーム番号から計算して表示します。既定はノンドロップ(HH:MM:SS:FF)で、フレームレートが 29.97 / 59.94 fps のときはドロップフレーム(HH:MM:SS;FF)に切り替えられます。
- 動画の先頭を
00:00:00:00として数えます。ファイルに記録された開始タイムコード(カメラのタイムコードなど)は反映しません。 - フレーム番号は 0 から数え、タイムコードと並べて表示します。
- 可変フレームレートの動画では、平均フレームレートを使ってフレーム番号をタイムコードに直します。実際の経過時間は、タイムコードの横の「分:秒.ミリ秒」の表示で確認できます。