Amazonで商品を見るセール会場へ

SRTファイルの作り方|時刻・UTF-8・VTTとの違いと読み込み確認

SRT(SubRip Subtitle)は、字幕の本文と表示開始・終了時刻を記録するテキストファイルです。映像や音声は入っていません。短い字幕ならテキストエディターで作れますが、保存後に読み込み先で時刻・改行・日本語の表示を確認します。

基本は「番号→開始時刻 –> 終了時刻→本文→空行」の繰り返しです。SRTは細部まで統一された規格ではないため、装飾や文字コードの解釈は読み込み先で異なります。米国議会図書館のSRT形式説明を根拠に構造を示し、FFmpegでの実行結果は使用版と条件を分けて掲載しています。

目次

SRTを作って確認する手順

  1. 字幕を使う動画と読み込み先を決める。字幕はその動画の時間を基準に作る
  2. 下の例をテキストエディターへ貼り付け、字幕の本文と開始・終了時刻を編集する
  3. 字幕ごとに番号を付け、終了時刻を開始より後にし、次の字幕との間に空行を入れる
  4. UTF-8でsub_utf8.srtなどの名前で保存する。ファイル名が.srt.txtになっていないか確認する
  5. 読み込み先へ字幕を追加し、冒頭・中間・末尾の表示と音声のタイミングを確認する。元のSRTも別名で残す

SRTの書き方

1
00:00:01,000 --> 00:00:04,000
こんにちは。字幕のテストです。

2
00:00:05,000 --> 00:00:08,500
2行目も
このように表示されます。

3
00:00:09,000 --> 00:00:11,000
<i>斜体</i>も使えます。
行書くこと
1行目字幕の番号(1から順に)
2行目表示を始める時間 –> 消す時間
3行目から字幕の本文(改行すれば2行になる)
最後空行(次の字幕との区切り)

時間の書き方

時間は「時:分:秒,ミリ秒」の形で、時と分と秒は2けた、ミリ秒は3けたで書きます。

ミリ秒の前は「.」ではなく「,」です。

「–>」の前後には半角の空白を入れます。

使える飾り

<i>…</i> で斜体、<b>…</b> で太字にできますが、表示できるかどうかは再生するソフト次第です。

SRTの時刻は経過時間で、ミリ秒を使います。最後の「,000」はフレーム番号ではありません。00:00:01,500は1.5秒で、30fpsの映像のフレーム数をそのまま末尾に書く指定ではありません。

文字コードはUTF-8にする

同じ字幕を、3つの文字コードで保存して比べました。

保存のしかた大きさffmpeg での焼き込み
UTF-8(BOMなし)236 バイトそのまま表示できた
UTF-8(BOMつき)239 バイトそのまま表示できた(10月2日に追加検証)
Shift_JIS(ANSI)198 バイトエラーで止まった(文字コードを指定すると表示できた)
ffmpeg 9.0.2 での結果(9月29日の記録を10月2日に再検証。CRLF・末尾改行あり)

Shift_JIS の字幕を ffmpeg で焼き込むと、次のエラーで止まりました。

Invalid UTF-8 in decoded subtitles text; maybe missing -sub_charenc option

Windows のメモ帳で保存するときは、「文字コード」を UTF-8 にします。

BOM(ファイルの先頭に付く3バイトの目印)は、付けたほうが読めるソフトと、付けないほうがよいソフトがあります。

使うソフトの説明に合わせ、迷ったら BOM なしの UTF-8 にします。

ffmpeg で文字コードを指定して焼き込む方法は、ffmpegで字幕を焼き込む・埋め込む方法で紹介しています。

改行コード

今回のWindows環境ではCRLFで保存しました。改行コードはエディターの設定によって変わります。

今回試した ffmpeg では、CRLF の SRT もそのまま読めました。

保存した字幕の時刻を確かめる

ファイル名を sub_utf8.srt、文字コードをUTF-8にして保存します。

メモ帳で保存したあと、エクスプローラーの拡張子表示を有効にし、sub_utf8.srt.txt になっていないか確認してください。

ffprobe -v error -show_packets -show_entries packet=pts_time,duration_time -of compact sub_utf8.srt
packet|pts_time=1.000000|duration_time=3.000000
packet|pts_time=5.000000|duration_time=3.500000
packet|pts_time=9.000000|duration_time=2.000000

上の3字幕を、2026年10月2日に ffmpeg 9.0.2 で読み込んだ結果です。

pts_time は開始時刻、duration_time は表示時間なので、2番目は5.000秒から8.500秒まで表示されます。

BOMあり・なしのUTF-8で3つの時刻と表示時間が一致し、CRLFで保存した日本語字幕も焼き込めました。

LF改行の同じ例も別途読み込み、同じ3つの時刻と表示時間を確認しました。

字幕が少ない・途中で止まる場合は、その前後の番号、開始より後の終了時刻、字幕間の空行を見直します。

ffprobeで時刻が読めても表示や音との同期を保証するものではないため、使うプレーヤーでも最初と最後を確認してください。

元のSRTを別名で残して編集すれば、失敗したときは元ファイルを開き直して戻せます。

2026年10月3日に文字コードと時刻を再確認した結果

Windows 11 Pro(build 26200)、Ryzen 5 7530U・RAM約16GB、FFmpeg 9.0.2(gyan.dev full build)で、上の3字幕を新しく保存して確認しました。CRLF・末尾改行ありのUTF-8は236バイト、BOMありは239バイト、CP932は198バイト、LFのUTF-8は224バイトでした。

4ファイルともffprobeで1.000秒・3.000秒、5.000秒・3.500秒、9.000秒・2.000秒の開始時刻・表示時間を取得できました。ただし、日本語テキストをデコードできることと、時刻だけを読み出せることは別です。CP932の焼き込みは文字コードを指定しないとエラーになり、charenc=CP932を指定するとUTF-8と同じ描画になりました。

日本語の表示は、12秒・640×360・30fpsの自作の色模様と合成音に焼き込んで確認しました。字幕のオン・オフやPremiereへの読み込み、Webページ上の表示を検証した結果ではありません。変換コマンドと実際の出力画像はFFmpegで字幕を焼き込む・埋め込む手順に掲載しています。

WebVTT(.vtt)との違い

WebVTT は、Web ページの動画(HTML の video タグ)で使う字幕の形式です。

次はFFmpegで上のSRTをVTTへ変換する例です。-nで既存の出力への上書きを止めます。拡張子を変えるだけでは、WEBVTTの先頭行や時刻の区切りは変わりません。

ffmpeg -n -i "sub_utf8.srt" "sub.vtt"
WEBVTT

00:01.000 --> 00:04.000
こんにちは。字幕のテストです。

00:05.000 --> 00:08.500
2行目も
このように表示されます。

00:09.000 --> 00:11.000
<i>斜体</i>も使えます。
比較項目SRTWebVTT
拡張子.srt.vtt
先頭なしWEBVTT
番号必要無くてよい(変換後は消えた)
ミリ秒の前,(カンマ).(ピリオド)
時が0のとき00: を書く省ける(変換後は 00:01.000 の形)
主な使い道動画プレーヤー・編集ソフト・字幕の配布Web ページの動画

WebVTTはW3Cの仕様でUTF-8、WEBVTTの先頭行、ピリオドを使う時刻などが定義されています。字幕識別子は任意です。字幕の位置や装飾を含むVTTからSRTへ変換する場合は、その情報が残るとは限りません。変換後は本文と時刻、必要な表示を読み込み先で確認します。

SRTが読めない・ずれる場合の確認

症状確認する内容
字幕ファイルを選べない実際の拡張子が.srtか、.srt.txtやリッチテキストになっていないか
字幕の時刻を読めない半角の数字、カンマ、–>、空行。終了が開始より前になっていないか
日本語が文字化けする元の文字コードを確認してUTF-8へ変換する。拡張子や文字コードの名前だけを変えない
文字が四角で表示される日本語を含むフォントが利用できるか。文字コードの問題と区別する
動画を途中から使うと字幕がずれる切り出した動画の開始位置とSRTの時刻の基準が一致するか
すべて同じ時間だけずれる字幕の時刻のオフセットを確認し、映像・音声そのもののずれと区別する
後半ほどずれる動画の版・長さ・編集内容が字幕作成時と同じか。開始だけを動かして全体が直るとは考えない

手書きと自動文字起こしの使い分け

数個の短い字幕は上の書式で直接作れます。長い会話は字幕作成ソフトや文字起こしで時刻付きSRTを書き出し、原音に合わせて固有名詞・数字・時刻を修正します。音声から作る手順はWhisperの使い方で確認できます。自動生成の本文や時刻を確認せず、そのまま完成した字幕とは扱いません。

字幕は意味の切れ目で改行し、短い時間に文字を詰めすぎないよう分けます。文字数・行数・表示時間に納品先の指定がある場合はそれを優先します。SRTの書式として読めることと、視聴者が読めることは別なので、実際の画面サイズで音声と合わせて確認してください。

作ったSRTを映像の一部にするか、切り替えられるトラックにするかは字幕の焼き込み・埋め込み、関連操作は動画編集の手順一覧へ進んでください。公式資料確認:2026年10月3日。9月29日・10月2日の既存記録と今回の検証は区別して保存しています。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

動画編集のおすすめ書籍

動画編集PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次