SRTファイルの作り方:字幕ファイル完全ガイド
subtitlessrtguide

SRTファイルの作り方:字幕ファイル完全ガイド

BMMamane B. MoussaFebruary 16, 20264 min read

Summarize this article with:

SRTファイルは、世界で最も広く使われている字幕フォーマットです。YouTube動画にキャプションを付けるときも、映画に字幕を入れるときも、オンライン講座をアクセシブルにするときも、いずれSRTファイルが必要になる可能性が高いでしょう。

これほど普及しているにもかかわらず、SRTフォーマットは驚くほどシンプルです。誰でも作成・編集・理解できるプレーンテキストファイルなのです。このガイドでは、正確なフォーマット仕様、SRTファイルを手動および自動で作成する方法、字幕フォーマット間の変換方法まで、すべてを解説します。

SRTファイルとは?

SRTはSubRip Text(SubRip Subtitleと呼ばれることもあります)の略です。もともとはDVDから字幕を抽出するSubRipというソフトウェアのために開発されました。そのシンプルさゆえに広く普及し、現在ではほぼすべての動画プラットフォームとプレーヤーでサポートされています。

SRTファイルは .srt 拡張子を持つプレーンテキストファイルです。字幕ブロックが連続して並んでおり、各ブロックは3つの情報で構成されています。

  1. 連番
  2. タイムコード範囲(字幕が表示されるタイミングと消えるタイミング)
  3. 字幕テキスト

これだけです。バイナリエンコーディングも、独自フォーマットも、特別なソフトウェアも不要です。SRTファイルはどんなテキストエディタでも開いて編集できます。

SRTフォーマットの仕様

SRTファイルの正確な構文は次のとおりです。

1
00:00:01,000 --> 00:00:04,500
Welcome to our complete guide
on creating subtitle files.

2
00:00:05,000 --> 00:00:08,200
In this video, we'll cover everything
you need to know about SRT files.

3
00:00:09,000 --> 00:00:12,800
Let's start with the basics
of the SRT format.

各要素を順に見ていきましょう。

連番

各字幕ブロックは連続した整数で始まります。最初の字幕は1、2番目は2、というように続きます。番号は順番どおりで、抜けがあってはいけません(ただし、ほとんどのプレーヤーはこの点に寛容です)。

タイムコード行

タイムコード行は、字幕が表示されるタイミングと消えるタイミングを指定します。

00:00:01,000 --> 00:00:04,500

フォーマットは HH:MM:SS,mmm --> HH:MM:SS,mmm です。

  • HH — 時(00〜99)
  • MM — 分(00〜59)
  • SS — 秒(00〜59)
  • mmm — ミリ秒(000〜999)
  • --> — 矢印の区切り記号(両側にスペースを入れる)

重要なポイント:

  • ミリ秒の区切りには、ピリオドではなくカンマを使います。これはSRTファイルを手動で作成するときに最もよくある間違いです。00:00:01,500 が正しく、00:00:01.500 は誤りです(一部のプレーヤーは受け付けますが)。
  • 矢印 --> の両側には、それぞれちょうど1つのスペースが必要です。
  • 終了時刻は開始時刻より後でなければなりません。

字幕テキスト

実際に表示するテキストです。SRTは以下をサポートしています。

  • 複数行 — ほとんどの字幕は1〜2行で構成されます。2行が標準的な上限です。
  • 基本的なHTMLタグ<b>bold</b><i>italic</i><u>underline</u><font color="#FFFFFF">colored text</font>(プレーヤーによってサポート状況は異なります)。
  • UTF-8エンコーディング — あらゆる言語に対応するフルUnicodeサポート。

空行の区切り

各字幕ブロックは空行で区切る必要があります。空行は、ひとつの字幕がどこで終わり、次がどこから始まるかをパーサーに伝えます。ファイルの末尾も、最後の字幕の後に空行で終わらせるべきです。

SRTファイルを手動で作成する方法

SRTファイルを手作業で作るのは簡単です。手順を順番に見ていきましょう。

ステップ1:プレーンテキストエディタを開く

ワープロソフトではなく、プレーンテキストエディタを使ってください。ワープロソフト(Microsoft Word、Google Docs)は隠れた書式情報を追加するため、SRTファイルが壊れてしまいます。

おすすめのエディタ:

  • Windows: Notepad、Notepad++、VS Code
  • Mac: TextEdit(プレーンテキストモードに設定)、VS Code、Sublime Text
  • Linux: gedit、nano、VS Code
  • 全プラットフォーム共通: VS Code(無料で、この用途に最適)

MacでTextEditを使う場合は、入力を始める前に「フォーマット」>「標準テキストにする」を選択してください。

ステップ2:字幕ブロックを書く

フォーマットに正確に従ってください。30秒の動画イントロを想定した実例を示します。

1
00:00:00,500 --> 00:00:03,000
Hello and welcome to today's tutorial.

2
00:00:03,500 --> 00:00:06,800
My name is Sarah, and I'll be
walking you through the process.

3
00:00:07,200 --> 00:00:10,500
Before we begin, make sure you have
your project files downloaded.

4
00:00:11,000 --> 00:00:14,200
You can find the link in the
description below this video.

5
00:00:15,000 --> 00:00:18,500
Alright, let's get started
with the first step.

ステップ3:正しい拡張子とエンコーディングで保存する

次の設定でファイルを保存します。

  • 拡張子: .srt
  • エンコーディング: UTF-8(英語以外の文字には必須)

ほとんどのテキストエディタでは、保存時にエンコーディングを選択できます。UTF-8、またはBOMなしUTF-8を選んでください。

エディタがデフォルトで .txt として保存する場合は、ファイル名を変更して拡張子を .txt から .srt に変えてください。

ステップ4:SRTファイルをテストする

VLC Media Playerで任意の動画を開き、SRTファイルを動画ウィンドウにドラッグします(または「字幕」>「字幕ファイルを追加」を選択)。タイムコードが正しければ、適切なタイミングで字幕が表示されるはずです。

動画からSRTファイルを自動生成する方法

短い動画ならSRTファイルを手動で作成しても問題ありませんが、数分を超える長さになると面倒な作業になります。各字幕を音声に正確に合わせるには、動画を何度も繰り返し見直す必要があるからです。

AIを活用したツールなら、SRTファイルを数分で自動生成できます。ConvertAudioToTextの字幕ジェネレーターを使った手順を紹介します。

ステップ1:動画をアップロードする

字幕ジェネレーターにアクセスし、動画ファイルをアップロードします。MP4、MOV、AVI、MKV、WebMなど、一般的なフォーマットにはすべて対応しています。

ステップ2:処理を待つ

AIが音声を抽出し、音声認識で文字起こしを行い、タイミング付きの字幕ブロックを自動生成します。10分の動画なら通常1〜3分で完了します。

ステップ3:確認して編集する

生成された字幕はエディタに表示され、以下の操作ができます。

  • 文字起こしの誤りを修正する
  • タイムコードを調整する
  • 字幕ブロックを分割・結合する
  • 改行位置を変更する

ConvertAudioToTextの字幕エディタには波形表示機能があり、発話の開始と終了の位置が正確に見えるため、タイミング調整を直感的に行えます。

ステップ4:SRTとしてエクスポートする

完成した字幕をSRTファイルとしてダウンロードします。必要に応じて、VTT、ASS、プレーンテキストでのエクスポートも可能です。

SRTのベストプラクティス

以下のガイドラインに従えば、字幕がより読みやすく、プロフェッショナルな仕上がりになります。

タイミング

  • 最短表示時間: 字幕1つにつき1秒。これより短いと読むことができません。
  • 最長表示時間: 7秒。これより長いと、視聴者は字幕を読んでいることを忘れてしまいます。
  • 理想的な表示時間: ほとんどの字幕ブロックで2〜4秒。
  • 先行表示: 字幕は発話が始まる0.1〜0.25秒前に表示するべきです。視聴者の目がテキストを見つける時間を確保できます。
  • 字幕間の間隔: 連続する字幕の間に最低0.08秒(80ms)の間隔を空けてください。視覚的な「またたき」が生まれ、新しい字幕が表示されたことが視聴者に伝わります。

テキストの長さ

  • 1行あたりの最大文字数: 42文字。これは放送業界の標準であり、小さな画面でも読みやすさを保証します。
  • 1字幕あたりの最大行数: 2行。3行以上になると動画の表示領域を覆いすぎてしまいます。
  • 1字幕ブロックあたりの語数: 最大12〜15語を目安にしてください。
  • 改行: 自然な言語的区切りで改行します — 節と節の間、カンマの後、句の境界など。単語の途中で改行してはいけません。

良い改行の例:

We're going to start with
the first configuration step.

悪い改行の例:

We're going to start with the
first configuration step.

最初の例は前置詞句とその目的語の間で改行しています。2番目は名詞句(「the first configuration step」)の途中で改行しており、読みづらくなっています。

読み上げ速度

プロフェッショナルな字幕では、読み取り速度を毎秒15〜20文字(およそ毎分150〜200語)に設定します。これはほとんどの成人にとって快適なペースです。子ども向けコンテンツや教育用素材は、より遅め(毎秒12〜15文字)にするべきです。

読み取り速度の確認方法:字幕の総文字数を、表示時間(秒)で割ります。

例:「Welcome to our complete guide on subtitles」(44文字)を3秒間表示した場合 = 毎秒14.7文字。これは快適なペースです。

句読点と文法

  • 標準的な句読点を使ってください。字幕は文法的に正しくあるべきです。
  • センテンスケース(文頭と固有名詞のみ大文字)を使います。すべて大文字の表記は読みづらく、叫んでいる印象を与えます。
  • 文が本当に途切れる場合を除き、字幕の末尾を省略記号(...)で終わらせないでください。文が複数の字幕ブロックにまたがって続く場合は、次の字幕の冒頭に使います。
  • 疑問符や感嘆符は適切な場所に入れてください — 視聴者が聞き逃すかもしれないトーンを伝える役割があります。

効果音の説明

アクセシビリティ字幕(SDH — 聴覚障害者向け字幕とも呼ばれます)では、発話以外の重要な音の説明を含めます。

14
00:01:23,000 --> 00:01:25,500
[phone ringing]

15
00:01:26,000 --> 00:01:28,500
[door opens]
Hello, is anyone home?

効果音の説明には角括弧を使い、(サポートされていれば)イタリック体にしてセリフと区別します。

字幕フォーマット間の変換

SRTは最も一般的なフォーマットですが、唯一のものではありません。SRTを別のフォーマットに変換したり、その逆を行ったりする必要が生じることもあります。

SRT vs VTT(WebVTT)

VTT(Web Video Text Tracks)はHTML5ウェブ動画の標準フォーマットです。SRTと非常に似ていますが、いくつか違いがあります。

WEBVTT

1
00:00:01.000 --> 00:00:04.500
Welcome to our complete guide
on creating subtitle files.

2
00:00:05.000 --> 00:00:08.200
In this video, we'll cover everything
you need to know about SRT files.

主な違い:

  • VTTはミリ秒にカンマではなくピリオド(.000)を使う
  • VTTファイルは1行目に WEBVTT というテキストで始まる
  • VTTはCSSライクなスタイリングと位置指定をサポートする
  • VTTでは連番は省略可能

SRT vs ASS/SSA(Advanced SubStation Alpha)

ASSはより高機能な字幕フォーマットで、以下をサポートしています。

  • フォントスタイリング(字幕ごとのサイズ、色、太字、イタリック)
  • 位置指定(画面上の任意の場所に字幕を配置)
  • アニメーション効果(フェード、移動、回転)
  • 複数の字幕トラック

フォーマットはより複雑で、手書きされることはほとんどなく、通常はAegisubなどのツールで生成されます。アニメのファンサブ制作や高度な動画編集で人気があります。

SRT vs SBV(YouTube SubViewer)

SBVはYouTubeの旧来の字幕フォーマットです。よりシンプルなタイムコード形式を使います。

0:00:01.000,0:00:04.500
Welcome to our complete guide
on creating subtitle files.

0:00:05.000,0:00:08.200
In this video, we'll cover everything
you need to know about SRT files.

現在のYouTubeはSRTのアップロードを完全にサポートしているため、レガシーファイルを扱う場合を除き、SBVを使う理由はありません。

変換方法

ConvertAudioToTextの字幕コンバーターは、SRT、VTT、ASS、SBVをはじめとする主要な字幕フォーマット間の変換に対応しています。字幕ファイルをアップロードし、変換先のフォーマットを選び、変換されたファイルをダウンロードするだけです。

SRTとVTT間の手動変換(最もよくある変換)であれば、変更点はわずかです。

  1. 1行目に WEBVTT を追加する
  2. タイムコード内のカンマをピリオドに置き換える(00:00:01,00000:00:01.000 にする)
  3. .vtt 拡張子で保存する

SRTファイルをアップロードできる場所

SRTファイルが用意できたら、主要プラットフォームでの使い方は次のとおりです。

YouTube

  1. YouTube Studio >「コンテンツ」を開く
  2. 対象の動画 >「字幕」をクリック
  3. 「言語を追加」をクリックして言語を選択
  4. 字幕の下の「追加」をクリックし、「ファイルをアップロード」を選択
  5. 「タイミングあり」を選んでSRTファイルをアップロード

YouTubeはVTTとSBVフォーマットも受け付けます。

Vimeo

  1. 動画の設定を開く
  2. 「Distribution」>「Subtitles」をクリック
  3. 「+」ボタンをクリック
  4. 言語を選択してSRTファイルをアップロード

Facebook

  1. 動画の投稿を開く
  2. 「動画を編集」>「キャプション」をクリック
  3. 「SRTファイルをアップロード」をクリック
  4. ファイル名を filename.en_US.srt の形式にする(言語コードが必須)

HTML5動画

ウェブベースの動画プレーヤーでは、<track> 要素とともにVTTフォーマットを使います。

<video controls>
  <source src="video.mp4" type="video/mp4">
  <track src="subtitles.vtt" kind="subtitles" srclang="en" label="English" default>
</video>

まずSRTをVTTに変換するか、字幕コンバーターを使えば即座に変換できます。

動画編集ソフト

ほとんどの動画編集ソフト(Premiere Pro、Final Cut Pro、DaVinci Resolve、iMovie)はSRTファイルを直接インポートできます。タイムラインやテキストメニューにある「字幕をインポート」または「キャプションをインポート」オプションを探してください。

SRTでよくあるエラーと修正方法

SRTファイルが正しく表示されない場合は、以下のよくある問題を確認してください。

タイムコードでカンマの代わりにピリオドを使っている。 SRTはピリオドではなくカンマ(00:00:01,000)を使います。ピリオドを使うのはVTTです。字幕が表示されない場合、これが最も可能性の高い原因です。

ブロック間の空行がない。 各字幕ブロックは、ちょうど1行の空行で区切られていなければなりません。区切りがないと、パーサーがブロックを結合してしまいます。

エンコーディングが間違っている。 文字化け(特に英語以外のテキスト)が表示される場合は、ファイルがUTF-8で保存されていません。UTF-8エンコーディングで保存し直してください。

タイムコードの重複。 字幕1が 00:00:05,000 で終わり、字幕2が 00:00:04,500 で始まる場合、両者は重なっています。これをうまく処理するプレーヤーもあれば、両方を同時に表示したり、片方をスキップしたりするプレーヤーもあります。各字幕の終了時刻が次の字幕の開始時刻より前になるように修正してください。

連番の抜け。 最近のプレーヤーのほとんどは連番を完全に無視します(順序の判断にはタイムコードを使います)が、古いプレーヤーの中には番号の抜けや順序の乱れで混乱するものもあります。連番は順番どおりに保ってください。

余分なスペースや文字。 目に見えない文字(BOMマーカー、末尾のスペース、Macで開いたWindowsのキャリッジリターンなど)が問題を引き起こすことがあります。ファイルは正しく見えるのに動作しない場合は、不可視文字を表示できるコードエディタで開き、それらを取り除いてください。

よくある質問

SRTファイルにスタイル(太字、色、フォント)を追加できますか?

SRTフォーマットは基本的なHTMLタグをサポートしています:太字は <b>、イタリックは <i>、下線は <u>、色は <font color="#FFFFFF"> です。ただし、サポート状況はプレーヤーによって異なります。YouTubeはSRTファイル内のスタイルをすべて無視します。VLCは太字とイタリックをサポートします。確実なスタイリングが必要な場合は、堅牢なスタイリング機能を持つASS字幕フォーマットの使用を検討してください。ほとんどの用途では、スタイルなしのプレーンテキストが最も安全な選択です。

SRTファイルに含められる字幕の数に上限はありますか?

技術的な上限はありません。長編映画のSRTファイルは、1,500〜2,500個の字幕ブロックを含むのが普通です。フォーマットはプレーンテキストなので、10,000ブロックのファイルでも数百キロバイト程度です。最近のプレーヤーやプラットフォームなら、常識的なサイズのファイルはどれでも問題なく扱えます。

タイミングのずれた字幕を同期させるには?

すべての字幕が一律に同じだけ早い、または遅い場合は、すべてのタイムコードを固定オフセットでシフトできます。字幕エディタのようなツールなら、一度の調整でこれを行えます。タイミングのずれが一定でない場合(最初は合っているのに徐々にずれていく場合)は、個別のタイムコードを調整するか、字幕ジェネレーターを使って字幕を一から再生成する必要があります。

ウェブサイトにはSRTとVTTのどちらを使うべきですか?

ウェブベースの動画プレーヤー(HTML5の <video> 要素)では、VTTが標準です。ブラウザは <track> 要素を通じてVTTをネイティブにサポートしますが、SRTはネイティブにサポートしません。とはいえ、JavaScriptベースの動画プレーヤー(Video.js、Plyr、JW Player)の多くは両方のフォーマットをサポートしています。ウェブ向けに構築するならVTTがより安全な選択です。一般的な用途(YouTube、ソーシャルメディア、動画編集ソフト)で配布するなら、SRTのほうが互換性が広くなります。変換は簡単なので、字幕コンバーターを使えばいつでも両フォーマット間を変換できます。

Try transcription free

Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.

Related Articles