[WEB Tool] Subtitle Converter v1.0 — SRT / VTT / ASS / SBV / LRC を相互変換、ズレ補正もできる字幕ツールの使い方ガイド
概要
Subtitle Converter は、字幕ファイルの形式変換・ズレ補正・文字コード変換を、ブラウザ上で行えるWEBツールです。
SRT、WebVTT、ASS(SSA)、SBV、LRC の 5 つの形式を読み込み、どの形式にも書き出せます。読み込み時に文字コードを自動で判定するので、Shift_JIS などで保存された古い字幕ファイルも開けます。書き出しでは、UTF-8、UTF-16 LE に加えて、Shift_JIS も選べます。
ズレの直し方は、ミリ秒のずらし、FPS の変換、2 点指定、動画の再生位置に合わせる方法の 4 つです。動画や音声を読み込むと、字幕を重ねて表示しながら確認できます。
データはすべてお使いの端末(ブラウザ内)で処理されます。字幕ファイルや動画をサーバーへアップロードすることはありません。
Subtitle Converter
アプリのリンク。
Subtitle Converter // PROTOCOL.LAIN
SRT / VTT / ASS / SBV / LRC を相互変換。文字コードの自動判定、Shift_JIS 書き出し、ズレ補正、動画プレビューに対応。完全ブラウザ完結。
lain-lab.comスタートメニューから起動
トップページのスタートメニューから起動できます。
スクリーンショット
Subtitle Converter — サンプルを読み込んだ画面
左にファイルと文字コード、中央に字幕の一覧とプレビュー、右に補正と書き出しのツールが並びます。
Subtitle Converter — ヘルプのダイアログ
ヘッダーの「? HELP」を押すと、ツール内で使い方を確認できます。
動画
ツールの特徴
- 5 つの形式を相互に変換: SRT、WebVTT、ASS / SSA、SBV、LRC の読み込みと書き出し
- 文字コードの自動判定: UTF-8、UTF-16、Shift_JIS、EUC-JP、GBK、Big5、EUC-KR などを判定。化けたときは手動で選び直せます
- 文字コードを選んで書き出し: UTF-8、UTF-8(BOM 付き)、UTF-16 LE(BOM 付き)、Shift_JIS
- 4 種類のズレ補正: SHIFT(ミリ秒)、FPS 変換、2 点指定、動画の再生位置に合わせる
- 動画・音声でプレビュー: 再生位置に合わせて字幕を重ね表示し、再生中の行を一覧でハイライト
- 一覧でそのまま編集: 開始・終了・本文を直接書き換え。行の追加・削除、Undo(40 段)
- 整形をまとめて実行: タグの除去、効果音や話者表記の除去、空行の削除、並べ替え、重複や重なりの修正
- 複数ファイルを一括処理: ずらしや整形を、読み込んだ全ファイルに一度に適用
- 完全ローカル処理: 外部ライブラリ非依存、サーバー通信なし
まず試す:サンプルを読み込む
- 画面左の「Load sample」ボタンを押します。
- 字幕 10 行と、各字幕の開始位置でビープ音が鳴る 30 秒の音声が読み込まれます。
- 再生ボタンを押すと、ビープ音が鳴るのと同時に字幕が出ます(最初は、ぴったり合っています)。
- 右の SHIFT で「+1s」を押してから、もう一度再生してみてください。字幕が 1 秒遅れてズレます。Undo で元に戻せます。
- CLEANUP の項目にチェックを入れて「Apply cleanup」を押すと、効果音の除去や重複のまとめなどの結果を確認できます。
自分のファイルで使うときは、字幕ファイルを左の破線エリアにドロップするだけです。
使い方
1. 読み込み
- 字幕ファイル(
.srt.vtt.ass.ssa.sbv.lrc.txt)を、左の破線エリアにドロップ、またはクリックして選びます。複数ファイルを同時に読み込めます。 - 「PASTE TEXT」欄にテキストを貼り付けて、「Parse pasted text」で読み込むこともできます。
- 形式は、拡張子ではなく中身で判定します。文字コードも自動で判定します。
- 文字が化けたときは、「INPUT ENCODING」で Shift_JIS や EUC-JP などを選び直してください。同じファイルを、選んだ文字コードで読み直します。
- 複数のファイルは、左のファイル一覧をクリックして切り替えます。
2. 動画・音声のプレビュー
- 動画や音声ファイルを、画面にドロップするか、「Load video / audio…」で選びます。
- 再生位置に合わせて、字幕が映像の上に表示されます。再生中の字幕は、一覧で緑の線でハイライトされます。
- 「follow playback」にチェックを入れておくと、再生中は一覧が自動でスクロールします。
3. 一覧の編集
中央の一覧で、字幕を 1 行ずつ確認・編集できます。
| 項目 | 内容 |
|---|---|
| START / END | 開始・終了の時刻。0:01:23.456 のほか、1:23 のような短い書き方も入力できます |
| TEXT | 本文。そのまま書き換えられます |
| DUR | 表示時間と、1 秒あたりの文字数(cps) |
行の右にあるボタンの意味は、次のとおりです。
- ▶:その字幕の開始位置へ、動画をシークする
- S:開始時刻を、いまの再生位置にする
- E:終了時刻を、いまの再生位置にする
- +:その行の下に、字幕を 1 行追加する
- ✕:その行を削除する
赤い警告マーク(⚠)は、「終了が開始より前」か「次の字幕と時間が重なっている」行です。cps がオレンジのときは、1 秒あたり 20 文字を超えていて、読みにくい字幕です。
画面上部の「Undo」で、直前の操作を取り消せます(ファイルごとに 40 段まで)。
4. ズレを直す(TOOLS 右パネル)
ズレの種類によって、使うものが違います。
| 症状 | 使うもの |
|---|---|
| 最初から最後まで、同じだけズレている | SHIFT |
| 動画を見ながら合わせたい | Sync selected row to video time |
| 後ろにいくほどズレる(FPS 違い) | FPS / SCALE |
| 前半は合うのに、後半のズレ幅が違う | TWO-POINT SYNC |
SHIFT
- ミリ秒を入力して「Apply (ms)」を押すと、全体がずれます。マイナスなら早く、プラスなら遅くなります。
- 「-1s」「-0.5s」「-0.1s」「+0.1s」「+0.5s」「+1s」のボタンで、すぐにずらせます。
- 「from cue #」と「to cue #」に字幕の番号を入れると、その範囲だけをずらせます(空欄なら全体)。
動画に合わせる
- 動画を読み込みます。
- ズレている字幕の行を、一覧でクリックします。
- 動画を、その台詞が始まる瞬間で止めます。
- 「Sync selected row to video time」を押します。
いまの再生位置と、選んだ字幕の開始時刻の差の分だけ、全体がずれます。
FPS / SCALE
- 「FPS」は、字幕の元の FPS を左、動画の FPS を右に選んで、「Convert FPS」を押します。例:23.976 → 25。
- 「Multiply time」は、倍率を直接入力して、時間全体に掛けます。
TWO-POINT SYNC
前半は合っているのに、後半のズレ幅が違うときに使います。
- 合わせたい 2 か所の字幕の番号を、「cue # A」と「cue # B」に入力します。
- その 2 つの字幕の、正しい開始時刻を、「new time A」と「new time B」に入力します。
- 「Apply」を押すと、間の字幕も、直線的に伸び縮みして合います。
5. 整形(CLEANUP)
チェックを入れた項目を、まとめて実行します。
| 項目 | 内容 |
|---|---|
| strip tags | <i> などのタグや、ASS の装飾タグを消す |
| remove [..] (..) (..) ♪..♪ | 効果音、話者表記、歌の記号を消す |
| trim / collapse spaces | 行の前後の空白と、連続するスペースを整える |
| remove empty cues | 中身が空の字幕を削除する |
| sort by start time | 開始時刻の順に並べ替える |
| merge consecutive duplicates | 同じ文が続いたら、1 つにまとめる |
| fix overlaps | 終了を、次の字幕の開始までに切り詰める |
| min duration | 短すぎる字幕を、指定した長さ(ミリ秒)まで延ばす |
6. 検索置換・改行
- FIND & REPLACE:字幕の本文だけが対象です。「regex」にチェックを入れると、正規表現が使えます(置換側で
$1などが使えます)。 - LINE BREAKS:「Unwrap to one line」で、字幕を 1 行にまとめます。「Re-wrap」で、指定した文字数で折り返します。
7. 出力(OUTPUT)
| 項目 | 内容 |
|---|---|
| 形式 | SRT / WebVTT / ASS / SBV / LRC |
| 文字コード | UTF-8 / UTF-8(BOM) / UTF-16 LE / Shift_JIS |
| 改行 | CRLF / LF |
| keep ASS header | ASS から ASS に書き出すとき、元のスタイル定義を保つ |
| フォント・サイズ | ASS に書き出すとき、新しく付けるスタイルのフォントと大きさ |
「DOWNLOAD」で、表示中のファイルを保存します。「DOWNLOAD ALL」で、読み込んだ全ファイルを順に保存します。ファイル名は、元の名前の拡張子を、選んだ形式に変えたものです。
右上の「apply to all files」にチェックを入れると、SHIFT や CLEANUP などの操作が、読み込んだ全ファイルに適用されます。
注意事項
- 本ツールは、ブラウザ内で字幕を処理します。ファイルが外部サーバーへ送信されることはありません。
- ASS から SRT や VTT など、ほかの形式へ変換すると、位置の指定や細かいスタイルは失われます(斜体・太字・下線は残ります)。
- ほかの形式から ASS へ書き出すときは、指定したフォントとサイズの標準スタイルが、新しく付きます。
- LRC は、終了時刻を持たない形式です。読み込むときは、次の行の開始を終了とみなします。書き出すときは、字幕内の改行がスペースになります。
- WebVTT の位置指定(
line:やposition:など)と、NOTE・STYLEのブロックは、読み込んだあと残りません。 - Shift_JIS で書き出すとき、Shift_JIS にない文字は
?になります。その文字数は、画面下に表示されます。 - 文字コードの自動判定は、文が短いと外れることがあります。化けたときは、手動で選び直してください。
- 数千行の字幕での動作速度は、まだ確認していません。
よくある質問 (FAQ)
Q. 文字化けしたときは、どうすればいいですか?
A. 左の「INPUT ENCODING」で、Shift_JIS や EUC-JP などを選んでください。選んだ文字コードで、そのファイルを読み直します。
Q. 動画ファイルは、アップロードされますか?
A. されません。動画や音声は、ブラウザ内で再生しているだけです。どこにも送信されません。
Q. ズレの直し方が分かりません。
A. 画面左の「Load sample」で、ビープ音つきのサンプルを読み込んでください。音と字幕のズレを、実際に直して試せます。ツール内のヘルプ(「? HELP」)にも、症状別の早見表があります。
Q. ASS のスタイルは、保てますか?
A. ASS から ASS へ書き出すときは、元のスタイル定義を保ちます(「keep ASS header」にチェックしたとき)。ほかの形式への変換では、位置とスタイルは失われます。
Q. 古いプレーヤーで、字幕が文字化けします。
A. 文字コードを、Shift_JIS か UTF-8(BOM 付き)にして、書き出してみてください。
技術記事
実装の詳細は、技術記事にまとめています。
[Astro] #170 Subtitle Converter — SRT / VTT / ASS の変換とズレ補正、Shift_JIS 対応
5 つの形式を同じ形にそろえて読む方法、文字コードの判定の順番、Shift_JIS の書き出し表、2 点指定の線形補正、ビープ音つきのサンプルの作り方、Astro で踏んだハマりどころまで。
lain-lab.com更新履歴
| バージョン | 日付 | 内容 |
|---|---|---|
| v1.0.0 | 2026/10/11 | 初回公開(SRT / VTT / ASS / SBV / LRC の相互変換、文字コードの自動判定と Shift_JIS 書き出し、ズレ補正 4 種、動画・音声プレビュー、整形、検索置換、複数ファイル一括処理) |
クレジット
ライブラリ
- 本ツールの字幕の解析・変換・文字コード処理・プレビューは、すべて外部ライブラリ非依存の純粋な JavaScript (Web API) で自作されています。
- サンプルのビープ音声は、ブラウザ内で生成しています。