- 公開:
- 更新:
- 確認担当:
- Jonathan
字幕のずれを直す:一定の遅れ、ドリフト、編集版の違い
全編で字幕のずれがほぼ同じなら、字幕時刻をその分だけ移動します。ずれが徐々に増える場合は倍率も検討し、編集点で急に変わる場合は動画と字幕の編集版を確認します。
このガイドは字幕のずれを測定し、時刻を補正して保存したSRTを確認する方法を説明します。
元ファイルと字幕トラックを確認する
原本を保管し、SRTのコピーで作業します。動画を開き、対応する字幕を明示的に読み込んで対象トラックを選びます。文字がまったく出ない場合は、読み込み、トラックの有効化、字幕区間の再生を先に確認します。
米国議会図書館の形式説明によればSRTは文字と開始・終了時刻を持つファイルです。対応する動画も用意します。
冒頭・中盤・終盤で同じ台詞を測る
各位置で明確に聞き取れる台詞を選び、SRTの開始時刻と、その台詞を話す動画時刻を別々に記録します。対応が曖昧なら別の台詞を選びます。ファイル補正量は動画時刻 − 現在の字幕時刻です。次は自作の計算例です。
| 位置 | SRT開始 | 動画の台詞 | 補正量 |
|---|---|---|---|
| 冒頭 | 00:00:12,000 | 00:00:10,000 | −2秒 |
| 中盤 | 00:10:02,000 | 00:10:00,000 | −2秒 |
| 終盤 | 00:20:02,000 | 00:20:00,000 | −2秒 |
三点が近ければ一定の移動、滑らかに増えれば線形補正、突然変われば編集や区間の違いを検討します。三点だけでフレームレートなどの原因が確定するわけではありません。
一定のずれは開始と終了を一緒に変更する
上例では対象の開始・終了を両方2秒引きます。元の00:00:12,000 --> 00:00:14,000は次になります。
1
00:00:10,000 --> 00:00:12,000
列車はまもなく出発します。字幕8秒、台詞10秒なら逆に+2秒です。文字、順序、正の長さを保ちます。負の時刻になる字幕は対応する台詞と境界を個別に調べます。
SubtitleToolsの説明ではミリ秒単位の全体移動を扱い、一定のずれを対象としています。2秒は2000ミリ秒です。ファイルを渡す前に取り扱い条件を確認し、私的な字幕には適切なローカル処理を選びます。
視聴だけならプレーヤーで一時調整する
字幕遅延の設定は視聴時の調整です。修正済みSRTの納品とは別に扱い、ファイルとプレーヤーで同じ補正を重ねないよう確認します。
VLC Desktop 3.0の同期資料に同期操作があります。メニューやキーは版によって異なり、既存の参考資料間でも方向の記述が違います。既知の台詞で小さく動かし、実際に早くなるか遅くなるかを見てから続けます。ファイル計算の符号とプレーヤー表示の符号は個別に確認します。
滑らかなドリフトは二点計算と第三点確認
対応が明確な二点について、字幕時刻s1、s2と動画時刻v1、v2を秒で表します。
a = (v2 − v1) / (s2 − s1)
b = v1 − a × s1
補正時刻 = a × 元時刻 + b自作例s1=10、v1=10、s2=610、v2=616ならa=1.01、b=−0.1、元310秒は313秒です。開始と終了の両方に適用し、最後にミリ秒へ丸めます。同じ字幕時刻の二点、逆順、違う台詞の組み合わせは使えません。
中盤の別の台詞で独立に確認します。合わない、または場面の追加・削除で飛ぶ場合は、対応版の字幕か区間ごとの再整列を選びます。SubShifterは線形補正を説明しています。ドリフトの原因は測定と動画の編集版から確認します。
編集点のずれは区間ごとに合わせる
対応する編集版があれば優先します。それ以外では、境界前最後の一致台詞と境界後最初の一致台詞で範囲を分け、元番号を控えます。範囲ごとに測り、開始・終了へ同じ補正を加え、その範囲の別の台詞で確認します。
| 範囲 | 元区間 | 動画で測った区間 | 処理 |
|---|---|---|---|
| 前 | 00:04:55,000 —> 00:04:57,000 | 00:04:55,000 —> 00:04:57,000 | 維持 |
| 境界をまたぐ | 00:04:59,000 —> 00:05:02,000 | 00:04:59,000 —> 00:05:01,000 | 両端を個別測定 |
| 後 | 00:05:10,000 —> 00:05:12,000 | 00:05:05,000 —> 00:05:07,000 | 両端から5秒引く |
境界字幕の開始に0秒、終了に−5秒を使うと299→297秒になり、長さが逆転します。ここでは独立に測った299→301秒を使います。台詞が削除されている場合は、原本を残してコピー上で文字の編集・削除を明示的に行います。対応不明は未解決と記録します。
1
00:04:55,000 --> 00:04:57,000
列車が来ました。
2
00:04:59,000 --> 00:05:01,000
待ってください。
3
00:05:05,000 --> 00:05:07,000
今なら乗れます。独立確認として境界前260秒の台詞は260秒、境界後600秒は595秒で確認します。境界の台詞も別に確認します。これは教材の仮定で、実際に動画を修復した報告ではありません。
負の時刻は個別に扱う
1→3秒に−2秒を加えると−1→1秒です。まず台詞の対応を見直します。実際の完全な台詞を0→1秒と独立に観察できた場合だけ、その字幕を0→1秒へ手動変更し、長さの変更を記録します。負値の一括ゼロ化はこの手順の範囲外で、各字幕を個別に確認します。台詞がない、終点不明なら原本を残し、その字幕は未解決とします。
編集操作はSubtitle Edit 5の時間移動で確認した範囲だけを選択し、基準点同期で動画の位置へ合わせます。File → Open / File → Save asで別コピーを扱います。独立した中間の台詞と両端の時刻で補間結果を確認します。
測定値をエディターで適用する
公式の操作画面には範囲選択と実行ボタンがあります。範囲を先に設定します。
- SRTの作業コピーをFile → Openで開き、Synchronization → Adjust all times…へ進みます。
- 時間量を2秒(00:00:02,000)に設定します。全体の同じずれを確認した場合はAdjust all、有限区間は確認済み行を選択してAdjust selected linesを使います。Adjust selected lines and forwardは後続全行にも適用するため、残り全体が同じ補正の場合に使います。
- 範囲と時間量を確認してから、−2秒はShow earlierを一度、+2秒はShow laterを一度クリックします。これが調整の実行です。次の操作前に実際の時刻を確認します。
- −2秒例の12–14が10–12になり、文字が保たれるか確認します。選択内と範囲外を調べ、間違った場合は無変更コピーを開き直して測り直します。確認後File → Save as…で新SRTを保存します。
Synchronization → Point sync…では対応動画を開き、字幕行のSet sync pointで同じ台詞の位置を記録し、次の確認済み行でも繰り返してOKで適用します。独立した第三の行と両端を確認します。第三の台詞と両端の時刻を測定値と比較し、補間結果を確認します。
保存したコピーを読み直して確認する
番号、HH:MM:SS,mmm --> HH:MM:SS,mmm、文字、空行を保って別SRTへ保存します。プレーヤーの一時遅延を戻し、保存したコピーを明示的に読み直します。冒頭・中盤・終盤で文字、時刻順、正の長さを確認します。違うファイルなら名前とトラック、文字化けなら元の文字コードをコピーで確認します。
ずれに合った補正方法を選ぶ
一定のずれは時刻移動、均一なドリフトは測定した線形変換、編集点の跳びは区間別の再整列で扱います。新しいSRTを保存し、対応する動画の冒頭・中盤・終盤で確認します。