無料で試す
← ブログに戻る

字幕ファイルを削除して撮り直す前に、SRT の文字化けもずれも直せる

フォーラムやファイル置き場を渡り歩いてきた字幕は、開いた瞬間に疑問符の壁。やっと日本語が表示されても、再生が進むほどどんどんずれていく。動画は正常、ファイルもある、なのに組み合わせると合わない——SRT 字幕のこうした不調の大半はプレーヤーのせいではなくファイル自体にあります。エンコードが誤認されている、タイムコード行が壊れて書かれている、それぞれに対応する直し方があります。

SRT 字幕がおかしいとき、まずファイルを開いて文字化けと時間ずれを切り分ける

メモ帳でトリアージ:文字行が読めないならエンコードの病気、読めるのに拍が合わないなら時間軸の病気、二つの道は別々に進めます。SRT はプレーンテキスト形式で、構造は四層。SubRip 形式の共通約定では、一つの字幕は番号行・タイムコード行・一行以上のテキスト行で構成され、ブロックの間を空行で区切ります。タイムコード行は「時:分:秒,ミリ秒 --> 時:分:秒,ミリ秒」と書かれ、ファイル全体の骨格です——後で直すべき断点はすべてこの行と区切りの空行上にあります。方向を先に見極めれば、力が無駄になりません。

文字化けの根元はエンコードの誤認、UTF-8 で保存し直せば大方救えます

文字化けのとき、ファイルの中のバイトは壊れていません——壊れているのは読み方です。プレーヤーが文字コードを取り違え、日本語がただの模様になります。典型的な様態は二つ。行全体がラテン文字混じりの記号の塊になるのは、UTF-8 の内容が一バイト系のエンコードとして読まれている証拠。ページいっぱいの疑問符や四角は、たいてい逆向きの取り違えです。SRT 形式自体はエンコードを規定していません。古いツールはローカルの符号化(中国語環境では GBK)で保存してきたため、既定で UTF-8 を読む環境に出すと噛み合わなくなります。直し方はメモ帳で二段取り。ファイルを開き、名前を付けて保存のときエンコードを手動で UTF-8 に選び直します。Windows では BOM 付き UTF-8 がおすすめ——Unicode の公式 FAQ が説明するように、BOM はまさに読み手のプログラムがエンコードを識別するための印です。落とし穴は二つ、ついでに避けます。Word で字幕を保存しないこと。レイアウト情報がファイルに入り込み、構造が即死します。保存ダイアログのエンコード欄は必ず手動で選ぶこと。古いシステムの既定は ANSI で、UTF-8 ではありません。

時間軸の乱れは二種類:偏りが一定なら平行移動、だんだん広がるならドリフト

冒頭で一度合わせ、中盤と終盤でもう一度ずつ合わせて確かめる——最初から最後までずれが同じなら平行移動、広がっていくならドリフト、直し方はまったく別物です。平行移動は字幕と動画のバージョン不一致でよく起きます。同じ映画から冒頭の広告がカットされ、字幕がある固定値だけ遅れて始まる。とっさのしのぎにはプレーヤーの字幕遅延調整を使い、ファイル自体を直すなら Subtitle Edit のようなオープンソースツールで全体を一括平行移動します。数十行のタイムコードに手を触れずに済みます。ドリフトは冒頭は合っているのに終盤に十秒以上ずれるもので、たいていフレームレートのバージョン不一致——映画でよくある 23.976 と 25 fps の間の受け渡し、あるいは速度が変えられた動画です。ドリフトは手直しでは救えません。既知の二つの整合点を基準に、ツールで時間軸全体を線形に縮尺し直します。

矢印・カンマ・空行:タイムコード行の三つの高頻度断点、一括置換でつなげる

三つの断点はどれもメモ帳の検索置換で直せます。ただし、それぞれの正しい形を知っていることが前提です。

  • 矢印が壊れている:タイムコード行の真ん中の矢印は常にハイフン二つと大なり記号一つ。受け渡しの過程で中国語のダッシュ+矢印になったり一文字欠けたりしやすい——標準の書き方に置換して戻します;
  • カンマがピリオドに:ミリ秒の区切りは形式の規定では英語のカンマ。一部のソフトはピリオドで書き出し、厳格なプレーヤーはタイムコード行ごと拒否します;
  • 空行が消えた:ブロックの間は一つの空行で区切ります。コピペで消えると、プレーヤーは二つの字幕を一つに束ねて飛び跳ねます。

直したら抜き取り検査を一回:冒頭・中盤・終盤で一つずつ選び、動画と付き合わせて表示のタイミングを確認します。一括置換は形を直し、抜き取り検査は結果を検証する——二つやって初めて修了です。

直した字幕に完全な動画を合わせる、元稿と本編を一緒にローカルへ

字幕が固まったら足りないのは本編——元稿は源からきれいに取り、動画はダウンロードと録画の二路で揃えます。

ステップ 1:VidBrowser をダウンロードしてインストール

VidBrowser は Windows と Mac で動画を見て保存するためのデスクトップ動画ブラウザで、ダウンロードと録画の二大機能を内蔵しています。

ステップ 2:「YouTube 字幕ダウンロード」で元稿をきれいに取る

左のナビゲーションで「ツール」ページに切り替え、「YouTube 字幕ダウンロード」を開き、動画のリンクを貼り付ければ SRT を保存できます。YouTube のネイティブ字幕トラックはエンコードが整然としていて、転々としてきたファイルよりずっときれいです。ツールの四段階の walkthrough は YouTube 字幕ダウンロードの記事にあります。

ステップ 3:動画ページに戻り、本編をダウンロードボタンで保存

再生中、右側の「動画メディアライブラリ」パネルにオレンジの「ダウンロード」ボタン付きの項目が並びます。ワンクリックで MP4 として保存、解像度を先に選んでからダウンロードすることもできます。

ステップ 4:ダウンロードの入り口がない内容は録画で補う

マウスを動画の画面に乗せると録画コントロールが重なって表示されます——録画速度を選び(1x は実時間、2x や 4x なら早く終わる)、「全録」で動画全体を録り、左の録画ボタンはいつでも開始・停止できます。保存したら左のナビゲーションの時計アイコンからダウンロード履歴を確認。ファイルがどこに落ちて、時間でどう探し直すかは ダウンロードした動画はどこにあるの記事に地図があります。

まとめ

SRT が不調なら、まずファイルを開いてトリアージ。文字化けはエンコードの誤認で、UTF-8 で保存し直せば救えます。拍が合わない場合は平行移動とドリフトを切り分け、前者は全体を一度ずらし、後者は比率で再計算します。矢印・カンマ・空行の三つの断点は一括置換の後、冒頭・中盤・終盤で一つずつ抜き取り検査。直したら本編を足して揃えます。字幕は数 KB、動画は数百 MB——二つそろって初めて、このコンテンツは完全になります。

よくある質問

UTF-8 で保存し直してもまだ文字化けします

見落としが二つあります。保存ダイアログのエンコード欄は手動で選ぶ必要があり、古いシステムの既定は UTF-8 ではなく ANSI です。また、一部のプレーヤーは自分の既定エンコードで読むため、字幕設定から文字コードを一度指定します。さらに、ファイルの先頭に奇妙な記号がいくつか現れても削除しないでください——あれは BOM 印で、プレーヤーがエンコードを認識する助けそのものです。

保存した字幕の拡張子が .txt ですが、使えますか?

拡張子は中身に影響しません。.srt に名前を戻せば使えます。戻す前にメモ帳で構造を確認します。「番号+タイムコード+テキスト」がそろっていなければ使える字幕ではありません。タイムコード行すらなければそれはただの文字起こしで、時間軸付きのバージョンを探し直す必要があります。

字幕が全体で 2 秒遅れます。一行ずつ直すしかないですか?

その必要はありません。まずプレーヤーの字幕遅延調整で間に合わせ、ファイル自体を直すなら Subtitle Edit で一括平行移動します。一行ずつの手直しは遅いうえ新しい誤りを生みやすい。比率での再計算が本当に必要なのは、冒頭が合っていて終盤に十秒以上ずれるドリフトのほうです。

その他のブログ