字幕の修復メモ
字幕のずれは一定?徐々に広がる?見分け方と補正手順
字幕と映像の時刻をいくつか比べ、「どの時点でも同じだけずれている」のか「再生が進むほど差が大きくなる」のかを分けます。前者なら全体移動、後者なら2点の線形補正が候補です。
まず、同じ場面の時刻を複数箇所で比べる
字幕本文と、その言葉が聞こえる音声や対応する動作を目印にします。前半・中ほど・後半から、合わせたい時刻をそれぞれ記録してください。下の数値は説明用の架空例です。入力ファイルや実動画を測った結果ではありません。
表では x を字幕ファイルに現在書かれている時刻、y を映像を見て字幕を合わせたい時刻とします。補正量は y − x です。正なら字幕を後ろへ、負なら前へ動かします。
差がほぼ同じなら、全体移動
各箇所の y − x がほぼ一定なら、字幕全体の時間が同じ分だけずれている状態です。
| 測る位置 | 現在の字幕時刻 x | 合わせたい時刻 y | 差 y−x |
|---|---|---|---|
| 前半 | 00:00:10.000 | 00:00:11.500 | +1,500 ms |
| 中ほど | 00:00:30.000 | 00:00:31.500 | +1,500 ms |
| 後半 | 00:01:00.000 | 00:01:01.500 | +1,500 ms |
この例では全キューを +1500 ms 移動すれば、3箇所とも同じ差が埋まります。字幕が1.5秒遅れている場合は逆方向なので −1500 ms です。
差が時間とともに変わるなら、線形補正を検討
次の架空例では、合わせたい時刻との差が前半で+500 ms、後半で+2,000 msです。1つの移動量では両方を同時に合わせられません。
| 測る位置 | 現在の字幕時刻 x | 合わせたい時刻 y | 差 y−x |
|---|---|---|---|
| 前半 | 00:00:10.000 | 00:00:10.500 | +500 ms |
| 中ほど(確認用) | 00:00:30.000 | 00:00:31.100 | +1,100 ms |
| 後半 | 00:01:00.000 | 00:01:02.000 | +2,000 ms |
前半・後半の2点を結ぶ式は次のとおりです。
y = a × x + b
a = (62,000 − 10,500) ÷ (60,000 − 10,000) = 1.03
b = 10,500 − 1.03 × 10,000 = 200
30,000 ms を補正 → 1.03 × 30,000 + 200 = 31,100 ms
中ほどの予測値31,100 msが観測値と一致するかを確認します。大きく食い違うなら、ずれが直線的に変わっていない可能性があります。編集点の違い、途中で抜けた字幕、区間だけのずれなどを先に調べ、2点の式を全編へ適用しないでください。
ツールで補正して、前後を確認する
- 字幕ファイルを読み込み、比較に使う前半・後半の字幕時刻 x と、合わせたい時刻 y をミリ秒で控えます。
- 差が一定なら「全体を移動」を選び、
y − xの差を入力します。差が変化し、線形と判断できる場合は「2点で線形補正」を選びます。 - 線形補正では、元 x1 に現在の字幕時刻、正 y1 に合わせたい時刻、元 x2 と正 y2 にもう1組の値を入れます。上の例では
10000, 10500, 60000, 62000です。 - 補正を適用し、元の時刻と補正後の時刻、エラー・重複の診断を確認します。中ほどの独立した目印でも同期を見直します。
- 必要ならローカル動画プレビューで確認し、形式を選んでダウンロードします。保存した字幕を編集元へ戻す前にも再生確認してください。
注意: 負の時刻や開始・終了が逆転する補正は出力できません。線形補正は全区間に同じ一次式を当てる方式なので、途中で映像がカットされた素材や局所的なずれを自動で直す機能ではありません。中間点が合わない場合は区間補正や元動画・字幕の版違いを確認します。
このページの時刻表と計算は架空データから再現できます。ツールはSRT / WebVTTをブラウザ内で処理します。上限は5 MB・20,000キューで、実際の字幕形式や動画コーデックによって読み込み・プレビュー結果は異なります。