SRT字幕ファイルの作り方:SRT形式の完全ガイド
SRTファイルは字幕の世界における縁の下の力持ちです。動画プレーヤーや編集ソフト、配信プラットフォーム、SNSまで、あらゆる場所で最も広くサポートされている字幕フォーマットです。最新動画にキャプションを追加するYouTubeクリエイターでも、海外のコンテンツを扱う翻訳者でも、教材を作る先生でも、作品を仕上げる映像制作者でも、SRTファイルを理解しておくことは欠かせないスキルです。
このガイドでは、SRT形式の基本から、作業時間を大幅に節約できる応用テクニックまで幅広く解説します。特にYouTubeへの字幕追加について知りたい方は、YouTube動画に字幕を追加する方法のガイドもあわせてご覧ください。
SRTファイルとは?
SRTはSubRip Subtitleの略です。もともとはDVDから字幕を抽出するSubRipというソフトウェア向けに作られました。この形式が広まった理由はそのシンプルさにあります。どんなテキストエディタでも開いて編集できる、ただのプレーンテキストファイルだからです。
SRTファイルは、番号の振られた字幕ブロックの連続で構成されています。各ブロックは3つの要素からなります。連番、字幕の表示・非表示のタイミングを示すタイムコード、そして字幕本文です。
シンプルな例を見てみましょう。
1
00:00:01,000 --> 00:00:04,500
Welcome to this video about
creating subtitle files.
2
00:00:05,200 --> 00:00:09,800
In the next few minutes, you will learn
everything you need to know about SRT format.
3
00:00:10,500 --> 00:00:14,000
Let's get started.
これだけです。複雑なタグも、バイナリのエンコードも、独自形式も必要ありません。番号とタイムスタンプ、そしてテキストだけです。このシンプルさこそが、SRTが20年以上にわたって標準フォーマットであり続けている理由です。
SRTフォーマットのルール
SRTファイルはシンプルですが、従うべき具体的なフォーマットルールがあります。ここを間違えると、字幕プレーヤーがテキストを正しく表示できなかったり、まったく表示されなくなったりします。
連番。各字幕ブロックは番号から始まります。番号は1から始まる連番にしましょう。ほとんどのプレーヤーは番号が順不同でも動作しますが、連番にしておけば余計なトラブルを避けられます。
タイムコードの形式。タイムコード行はHH:MM:SS,mmm --> HH:MM:SS,mmmの形式を使います。HHは時、MMは分、SSは秒、mmmはミリ秒です。開始時刻と終了時刻の区切りには --> (スペース、ハイフン、ハイフン、大なり記号、スペース)を使います。注意点として、SRTのミリ秒の区切り記号はピリオドではなくカンマです。これはよくある間違いで、表示エラーの原因になります。
テキスト内容。テキストは1行または2行(まれに3行)にします。読みやすさのため、各行は基本的に42文字以内にしましょう。テキストには<b>bold</b>、<i>italic</i>、<u>underline</u>のような簡易的なHTML風のタグを含められますが、すべてのプレーヤーが対応しているわけではありません。
空行による区切り。各字幕ブロックは空行で区切る必要があります。パーサーはこの空行によって、ひとつのブロックが終わり次のブロックが始まったことを判断します。空行がないとブロックが結合されてしまいます。
ファイルのエンコーディング。SRTファイルはUTF-8で保存する必要があります。特にアクセント記号付きの文字やアジア圏の文字、アラビア文字など、非ASCII文字を字幕に含める場合は重要です。ASCIIやANSIで保存すると、これらの文字が文字化けします。
SRTファイルを自動で生成
KlipToolsのSRTジェネレーターは、プレーンテキストの原稿を、計算されたタイムスタンプ付きの正しいフォーマットのSRTファイルに変換します。1ブロックあたりの単語数と読み上げ速度を設定するだけで、結果をすぐにダウンロードできます。
SRTジェネレーターを試す →SRTファイルの作成方法:3つのやり方
方法1:オンラインのSRTジェネレーターを使う(最速)
動画の原稿や文字起こしがあるなら、SRT形式に変換するのが最も速い方法です。SRTジェネレーターツールは、プレーンテキストをタイムスタンプ付きの正しいフォーマットのSRTに変換してくれます。
仕組み:
- テキストをコンバーターに入力または貼り付ける
- 1ブロックあたりの単語数、各ブロックの表示時間、読み上げ速度といった設定を行う
- ツールが連番・計算されたタイムスタンプ・適切に分割されたテキストを含むSRTファイルを生成する
- ファイルをダウンロードする
タイムスタンプは設定に基づいて計算されるため、均等に配分されます。動画内の実際の話し方に合わせて多少タイミングを調整する必要があるかもしれませんが、これだけで作業の8〜9割は数秒で終わり、何時間もかける必要はありません。
おすすめのケース:すでにテキストが用意されている台本ありの動画。
方法2:手作業でSRTファイルを書く
短い動画や、精密なコントロールが必要な場合は、どんなテキストエディタでもSRTファイルを作成できます。Windowsのメモ帳、Macのテキストエディット(プレーンテキストモード)、行番号やシンタックスハイライトが欲しければVS Codeなどです。
手順:
- テキストエディタを開く
- 動画を見ながら、各セリフのタイムスタンプをメモする
- 番号、タイムコード、テキスト、空行というフォーマットに沿って各字幕ブロックを書く
- .srt拡張子でファイルを保存する
手作業でタイムコードを扱うコツ:動画プレーヤーの一時停止機能とタイムスタンプ表示を活用しましょう。例えばVLCなら、画面下部に現在のタイムスタンプが表示されるので、それをそのままコピーできます。さらに精密にしたい場合は、動画を0.5倍速や0.75倍速で再生し、単語の境目を正確に捉えましょう。
おすすめのケース:短い動画(2分未満)や、フレーム単位の正確なタイミングが必要な場合。
方法3:既存の字幕を編集する
多くの場合、ゼロから作り始める必要はありません。既存の字幕をダウンロードして修正することもできます。
自動生成字幕から始める:YouTubeをはじめとする多くのプラットフォームでは、アップロードされた動画に対して自動でキャプションが生成されます。これらはSRTファイルとしてダウンロードし、認識エラーを修正するだけで済みます。タイミング調整の手間が省けるのが利点で、タイムスタンプはすでに音声と同期済みです。あとはテキストを直すだけです。
他の言語の字幕から始める:ある言語の字幕がすでに存在する場合、SRT翻訳ツールを使えば、タイミング情報をすべて保持したまま別の言語に変換できます。翻訳後のファイルは同じタイムスタンプとブロック構造を保ち、テキストだけが変わります。
おすすめのケース:字幕のタイミングがすでに存在し、テキストの修正や言語の変更だけが必要な場合。
字幕のタイミングを適切に調整する
タイミングこそが良い字幕と悪い字幕を分けるポイントです。テキストが完璧に正確でも、タイミングが悪ければ字幕は読みにくく感じられてしまいます。
読み上げ速度。字幕として快適に読める標準的な速度は1分あたり150〜200語(1秒あたりおよそ12〜20文字)です。これより速いと、視聴者は字幕が消える前に読み終えられません。遅すぎるとテンポが悪く感じられます。
最短表示時間。短いフレーズであっても、最低1秒は表示するようにしましょう。0.3秒で消えてしまう字幕は役に立たず、視聴者はそれに気づくことすらできません。
最長表示時間。字幕は7秒以上画面に残らないようにしましょう。それ以上表示する必要があるということは、そのブロックにテキストを詰め込みすぎているということなので、複数のブロックに分割すべきです。
先行表示時間。字幕は、話者が対応する文を話し始める少し前(200〜500ミリ秒程度)に表示するようにしましょう。これにより、視聴者の目がテキストを見つけて読み始める時間的余裕が生まれます。すでに言葉が発せられたあとに字幕が表示されると、違和感のあるラグが生じます。
ブロック間の間隔。連続する字幕ブロックの間には、最低200ミリ秒の間隔を空けましょう。このわずかな間があることで、視聴者に新しいテキストが来ることを知らせ、目を「リセット」させることができます。間隔がないと、ブロック同士がぼやけて追いにくくなります。
特殊なケースへの対応
複数の話者。複数の人が話している場合は、誰が話しているかを示すと分かりやすくなります。一般的な方法は、ひとつのブロック内で各話者のセリフの先頭にダッシュをつけることです。
15
00:01:05,000 --> 00:01:08,500
- Did you finish the report?
- Almost. Give me ten more minutes.
効果音と音楽。内容の理解に関わるセリフ以外の音は、角括弧で示しましょう。[phone ringing]、[dramatic music]、[crowd cheering]のようにです。これはアクセシビリティの観点から特に重要です。
外国語の単語やフレーズ。外国語の単語はイタリック体にします。<i>C'est la vie</i>のようにです。ただし、すべてのプレーヤーがHTML風のフォーマットを反映するわけではない点に注意してください。
数字と略語。10未満の数字は文字で書き出し、それより大きい数字は数字のまま表記します。視聴者がすぐに理解できる一般的な略語(USA、DNA、CEOなど)はそのまま使い、あまり知られていない略語は正式名称で書きましょう。
よくあるSRTの問題と解決方法
字幕がまったく表示されない。最もよくある原因はファイルのエンコーディングの誤りです。ファイルがUTF-8で保存されているか確認しましょう。次によくある原因は、ブロック間の空行が抜けていることで、これによりパーサーが処理に失敗します。
ファイル全体でタイミングがずれている。すべての字幕が同じ量だけ一貫して早い、または遅い場合、全体的なタイミングのずれが起きています。これは、字幕を作成したあとに動画をトリミングした場合によく起こります。すべてのタイムスタンプに一定の値を足す、または引くことで修正できます。
タイムスタンプのカンマとピリオド。SRTはミリ秒にカンマを使います(00:01:30,500)。一部のツールは誤ってピリオドを使ってしまいます(00:01:30.500)。一部のプレーヤーはこれを許容しますが、そうでないものもあります。必ずカンマを使いましょう。
タイムスタンプの重複。ある字幕の終了時刻が次の字幕の開始時刻より後になっていると、画面上でテキストが重なって表示されてしまいます。これは見た目にも分かりにくくなります。各ブロックが次のブロックの開始前に必ず終わるようにしましょう。
文字化けの問題。éの代わりにéのような文字化けが表示される場合、ファイルが誤ったエンコーディングで保存されています。互換性を最大限に保つため、BOM(バイトオーダーマーク)付きのUTF-8で再保存しましょう。
さまざまな場面でのSRTの活用
YouTube。YouTube StudioからSRTを直接アップロードできます。YouTubeはテキストをインデックスするため、動画の発見されやすさが向上します。詳しくはYouTube動画に字幕を追加する方法の完全ガイドをご覧ください。
Premiere Pro / DaVinci Resolve / Final Cut。主要な動画編集ソフトはすべてSRTファイルをインポートできます。これにより、視聴者がオン・オフを切り替えられるソフト字幕として表示するか、動画に焼き込んで恒久的なテキストにするかを選べます。
VLCなどのメディアプレーヤー。VLCは、動画ファイルと同じファイル名でSRTファイルが同じフォルダにあれば、自動的に読み込みます。つまり、movie.mp4があればmovie.srtの字幕が自動的に表示されます。
配信プラットフォーム。Netflix、Amazon Prime、Disney+をはじめとするほとんどの配信プラットフォームは、SRT形式の派生形(あるいはTTMLやWebVTTなどの近い形式)を字幕に使用しています。
よくある質問
SRTとVTTの違いは何ですか?
SRTファイルに書式を含めることはできますか?
<b>、<i>、<u>のような基本的なHTMLタグは一部のプレーヤーで機能します。確実な互換性を求めるなら、プレーンテキストにとどめておきましょう。1行あたり何文字にすべきですか?
スマートフォンでもSRTファイルを作成できますか?
SRTファイルは右から左に書く言語に対応していますか?
まとめ
SRTファイルは、テキストと番号、タイムスタンプだけで構成された、驚くほどシンプルなものです。ゼロから作成するには根気が必要ですが専門知識までは必要なく、SRTジェネレーターを使えば作業は劇的に速くなります。初めてのYouTube動画に字幕をつける場合でも、ドキュメンタリーを5つの言語に翻訳する場合でも、SRT形式はきっと役に立ちます。タイミングを正しく整え、テキストは簡潔で読みやすく保ち、必ずUTF-8で保存してください。視聴者はきっとその手間に感謝してくれるはずです。