字幕フォーマット完全ガイド:SRT、VTT、ASS、LRC、SBV、SSA、TTML | AllSubConverter
なぜ字幕フォーマットが存在するのか
画面上の字幕はシンプルに見えますが、その裏では驚くほど多様なファイルフォーマットで保存されています。それぞれが異なる時代、プラットフォーム、目的のために設計されました。DVDリッピング時代の映画用SRT、モダンなWeb用VTT、凝ったスタイリングを施したファンサブアニメ用のASSとSSA、音楽プレーヤー用LRC、初期YouTube用SBV、そして放送・ストリーミング標準化団体用TTMLです。
どのフォーマットを使うべきか、そしてフォーマット間をどう移行するかを知っていることが、「そのまま再生できる」字幕と、読み込みに失敗したり文字化けしたり同期がずれたりするファイルを分けます。このガイドは主要フォーマットのリファレンスであり、冒頭に比較表、その後に各フォーマットの詳細な解説をまとめています。全体像を理解すれば、フォーマット間の変換は簡単になります。
全体比較表
主要フォーマットが最も重要な次元でどう比較されるかを示します:ファイル拡張子、タイムスタンプの書き方、できること、得意な分野、そしてブラウザがネイティブで再生できるかどうか。
| フォーマット | 拡張子 | タイムスタンプ形式 | 主な機能 | 最適な用途 | ブラウザ対応 |
|---|---|---|---|---|---|
| SRT | .srt | hh:mm:ss,ms | シンプル、汎用、プレーンテキスト | 映画、オフラインプレーヤー | なし(VTTに変換) |
| VTT | .vtt | hh:mm:ss.ms | スタイリング、位置指定、チャプター | Web動画、HTML5 | ネイティブ |
| ASS | .ass | h:mm:ss.cs | フルスタイリング、アニメーション、位置指定 | アニメ、カラオケ、スタイル付き字幕 | なし |
| SSA | .ssa | h:mm:ss.cs | ASSの前身、スタイリング | レガシースタイル付き字幕 | なし |
| LRC | .lrc | [mm:ss.xx] | 最小限の開始時刻タグ | 音楽歌詞、カラオケ | 音楽プレーヤー経由 |
| SBV | .sbv | h:mm:ss.s | 旧YouTube字幕フォーマット | レガシーYouTube | なし |
| TTML | .ttml / .dfxp | hh:mm:ss.ms | 放送品質、リッチスタイリング | ストリーミング、放送 | 限定(IMSC経由) |
一つのタイムスタンプの詳細が常に人をつまずかせます:SRTはミリ秒の前にカンマを使い(00:00:01,000)、VTTはピリオドを使います(00:00:01.000)。この一文字が、再生されるVTTファイルと黙って失敗するファイルの違いです。
SRT -- 汎用の主力フォーマット
SubRip(SRT)は、字幕における共通言語に最も近い存在です。DVDリッピング時代に遡り、意図的に最小限の構造を使用します:連番、開始・終了タイムスタンプ行、そして1行以上のテキスト。スタイリング、メタデータ、位置指定は一切ありません。あるのはタイミングと文字だけです。
このシンプルさが強みです。世界中のほぼすべてのメディアプレーヤーがSRTを読めるため、ファイルがどこで使われるかわからない場合の最も安全な選択です。弱点はWebです:ブラウザはSRTをネイティブで再生しないため、HTML5動画では変換が必要です。それが目的なら、SRTからVTTへのガイドが手順をステップごとに説明しています。
VTT -- Web標準
WebVTT(VTT)は、Web上のテキストトラックのW3C標準です。SRTに似ていますが、必須の WEBVTT ヘッダーを追加し、タイムスタンプの区切りをピリオドに変更し、CSS的なスタイリングキュー、話者ラベル、位置指定、チャプターメタデータなどの実用的な機能を重ね合わせています。
すべてのモダンブラウザがHTML5の <track> 要素を通じてVTTをサポートしているため、YouTube、Vimeo、カスタムプレーヤーを含むWebページで再生されるあらゆるものに適したフォーマットです。ほとんどの場合、「これをWebで動かす」ことは「VTTに変換する」ことを意味します。
ASSとSSA -- スタイリングとパワー
SubStation Alpha(SSA)と後継のAdvanced SubStation Alpha(ASS)が存在する理由は一つだけ:スタイリングです。SRTとVTTがテキストを軽いフォーマットの付いた単なる文字として扱うのに対し、ASS/SSAはすべての字幕イベントを、フォント、色、縁取り、影、回転、移動、画面位置を備えた完全にスタイリングされたオブジェクトとして扱います。これが、凝ったスタイルのアニメ字幕、カラオケ効果、画像に直接組版された看板を支えるフォーマットです。
代償は、ブラウザやほとんどのシンプルなプレーヤーがASSを全く理解できないことです。Webや基本的なプレーヤーでスタイル付き字幕を使うには、通常SRTやVTTに変換します。リッチなスタイリングはその過程で失われます。これらのフォーマットの扱いについて詳しくは、ASS字幕スタイリングガイドを参照してください。
LRC -- 歌詞、骨格まで削ぎ落として
LRCは全く異なるカテゴリです。動画の字幕ではなく、音楽の歌詞を保存します。各行は [mm:ss.xx] 形式のタイムスタンプで始まり、直後に歌詞テキストが続きます。終了タイムスタンプ、スタイリング、オプションのタイトルやアーティストヘッダー以外のメタデータはありません。次のタイムスタンプが暗黙的に前の行を終了させます。
このミニマリズムは意図的です:Winamp、foobar2000、AIMPなどの音楽プレーヤーは、各行の開始時刻だけがあれば歌詞を同期してスクロールできます。動画フォーマットから音楽ライブラリへ字幕を移動する場合、LRCへの変換が正しい選択であり、SRTからLRCへのガイドがその手順を示しています。
SBV -- YouTubeの旧字幕フォーマット
SBVはYouTubeが初期に使用していた字幕フォーマットで、やや珍しいタイムスタンプスタイル(0:00:00.0)を使用していました。YouTubeは既に移行し、字幕は現在VTTとして提供されていますが、古いアーカイブやサードパーティツールでSBVファイルに遭遇することはまだあります。SBVをSRTやVTTに変換することが、モダンなプラットフォームで利用可能にする通常の最初のステップです。
TTML -- 放送品質の標準
Timed Text Markup Language(TTML)と、ストリーミング向けプロファイルのIMSC(および古いDFXP / .dfxp 拡張子)は、放送局と大手ストリーミングサービスが使用するXMLベースのフォーマットです。厳格なアクセシビリティと法的字幕要件を満たし、複数の言語と地域をサポートし、ニュースティッカーからオペラ字幕まであらゆるものの正確なレイアウトを担う必要があるため、設計上冗長で複雑です。
個人のクリエイターがTTMLを手書きすることはほぼありませんが、放送品質のフォーマットを要求するプラットフォームに字幕を納品する際によりシンプルなファイルをTTMLに変換したり、受け取ったTTMLファイルをSRTのようなよりポータブルな形式に変換したりする必要があるかもしれません。
適切なフォーマットの選択
シンプルな意思決定フローで、大部分のケースをカバーできます:
- Webブラウザで再生、またはYouTube/Vimeoにアップロード? → VTT。
- デスクトップまたはモバイルメディアプレーヤー(VLC、MPV、スマートフォン)で再生? → SRT。
- リッチなスタイリング、フォント、画面効果が必要? → ASS(その後Web用に変換)。
- 音楽プレーヤーで歌詞を表示? → LRC。
- 放送局や標準ベースのプラットフォームに納品? → TTML/IMSC。
- 古いYouTubeのSBVファイルを受け継いだ? → SRTまたはVTTに変換。
迷った場合は、SRTが誰もが読めるため最も安全な交換フォーマットであり、ブラウザがネイティブで再生できるためVTTが最も安全なWeb配信フォーマットです。実際のワークフローのほとんどは、正確に一回の変換で済みます:宛先が期待する二つのフォーマットのいずれかにファイルを合わせることです。
フォーマット間の変換
変換は双方向でロスレスになることは稀です。よりリッチなフォーマットへの移行(SRT → VTT、またはVTT → ASS)は情報を失うことなく機能を追加します。ダウングレード(ASS → VTT、またはVTT → LRC)はターゲットフォーマットが表現できない機能を落とします。それは欠陥ではなく予想される動作です:目標は、プレーヤーが実際に理解するフォーマットに到着することです。
優れたコンバーターは、ターゲットフォーマットが保持できるものをすべて保存し、残りを適切にデグレードさせるため、スタイリングが維持されなくてもタイミングとテキストは常に維持されます。
実践してみよう
これらのフォーマットがどう違うかを最も明確に理解する方法は、一つのファイルを取って変換の様子を見ることです。SRTからVTTへの変換は最も一般的な出発点であり、カンマからピリオドへの切り替え、必須ヘッダー、削除されるシーケンス番号がフォーマットの境界を定義する様子をきれいに示しています。
字幕フォーマット間の変換の準備はできましたか?
今すぐSRTをVTTに変換 →