インサイトに戻る
活用事例•2022-01-10•約8分 読了

SRTファイルの作り方と動画に字幕を付ける方法

SRTファイルの作り方と動画に字幕を付ける方法
TL
Team Laxis
Laxisチーム @ Laxis

SRTファイルとは

SRTファイルは、どの文字を、いつ正確に表示するかを動画プレーヤーに伝えるプレーンテキストの字幕ファイルです。SRTはSubRip Subtitleの略で、このファイルを最初に作ったプログラムSubRipにちなんで名付けられました。中身は番号付きのブロックが並んでいるだけで、各ブロックが開始と終了のタイムコードと1〜2行の文字を組み合わせています。

動画も音声もスタイルも含まず、動画を読み込んだり、そこから何かを取り出したりもしません。ファイルは動画の横に置かれ、プレーヤーが時刻で両者を合わせます。SRTのトラブルの大半はここから説明できます。タイムコードが間違っていれば、字幕も間違うのです。

SRTファイルの中身

どの .srt もプレーンテキストエディタで開けば、同じ4つの部分からなるブロックが繰り返されているのがわかります。

1
00:00:01,000 --> 00:00:03,400
製品紹介へようこそ。

2
00:00:03,600 --> 00:00:07,200
まずダッシュボードから始めて、
次にレポートを見ていきます。

3
00:00:07,400 --> 00:00:10,100
この画面のデータはすべてリアルタイムです。

これで完全な、有効なSRTファイルです。各部分は次のような形でなければなりません。

部分上の例ではフォーマットの要件
連番21行に単独で置く整数。1から始めて順に増やし、飛ばさない。
タイムコード行00:00:03,600 --> 00:00:07,200HH:MM:SS,mmm --> HH:MM:SS,mmm。時・分・秒は2桁、ミリ秒は3桁で、ミリ秒の前はカンマ、2つの間は「スペース・矢印・スペース」。
字幕テキストまずダッシュボードから始めて、1〜2行のプレーンテキスト。ここでの改行は画面上でも改行になる。
空行(各ブロックの後の空の行)空行1つでブロックを閉じる。ファイルの最後は改行で終える。

ミリ秒の前のカンマは、手書きの字幕ファイルで最も多いミスです。00:00:03.600 のようにピリオドで書いたタイムコードはWebVTTの書式で、SRTではありません。そのブロックを飛ばすプレーヤーもあれば、ファイル全体を拒否するもの、そこから先の字幕を表示しなくなるものもあります。

ですから、ほとんど同じに見えても、次の例は壊れています。

2
00:00:03.600 --> 00:00:07.200
このブロックはピリオドを使っているので、有効なSRTではありません。

字幕が読みやすいかを決めるルール

書式の上では、300文字の段落を画面に0.2秒だけ出すことも止められません。最も広く使われている公開の字幕ガイドラインはNetflixのもので、無料で読めます。

  • 1行の長さ:約42文字。 NetflixのEnglish Timed Text Style Guideは、1行あたり42文字を上限として厳格に定めています。
  • 最大2行。 Netflixの一般的なタイムドテキストの要件では字幕は2行までで、上限を超えない限り1行に収めます。
  • 表示時間:おおむね1〜7秒。 同じ要件で、字幕1つあたりの表示時間は最短6分の5秒、最長7秒と定められています。
  • 読む速さ。 Netflixは大人向け番組で毎秒20文字まで、子ども向けで毎秒17文字までを認めています。視聴者がわからないなら、17のほうが安全な目安です。
  • フレーズの切れ目で改行する。 Netflixの指針では、句読点の後、接続詞の前、前置詞の前で改行し、冠詞と名詞、名前と名字を別の行に分けてはいけません。

話し言葉の1文には、たいてい2〜3ブロックが必要です。そのため字幕のテキストは、同じ音声の文字起こしよりも短く、大きく削られたものになります。

SRTファイルの作り方

実際的な方法は3つあり、主な違いはどれだけ入力するかです。

プレーンテキストエディタで手入力する

短いクリップなら、これが一番速い方法です。上に示した形でブロックを入力して保存します。つまずきやすいのは次の4点です。

  • 拡張子。 Windowsは既知の拡張子を隠すため、メモ帳だと captions.srt.txt として保存されてしまいます。「ファイルの種類」を「すべてのファイル」にして、captions.srt と最後まで入力してください。macOSのテキストエディットでは、先に「フォーマット」>「標準テキストにする」を選ぶ必要があります。
  • 文字コード。 ANSIやUTF-16ではなく、UTF-8で保存します。YouTubeのドキュメントでも、SRTファイルはプレーンなUTF-8でなければならないとされています。
  • カンマ。 ピリオドではありません。
  • 空行。 ブロックの間に1つ、ブロックの中には入れない。

先に文字起こしして、テキストをブロックに分ける

音声が数分を超えるなら、タイムスタンプ付きの文字起こしを用意して、字幕サイズのブロックに切り分けるのが一般的です。Laxisはアップロードされた音声・動画ファイルを受け付け、作業の土台になるタイムスタンプ付きの文字起こしを返します。アップロードの手順は音声をテキストに文字起こしする方法のガイドで、元が動画の場合は動画をテキストに文字起こしする方法の手順で説明しています。

この2つは同じ文書ではありません。文字起こしは話者ラベル付きの連続した段落で、字幕ファイルは文字数の上限内で時間付きのブロックに刻まれています。初めて聞く話なら、文字起こしに実際に何が含まれるかを参考にしてください。自動で出力されたものは公開前に必ず読んでください。固有名詞、数字、発言のかぶりに誤りが集中します。

プラットフォームに字幕を生成させ、ファイルをダウンロードする

動画がすでにYouTubeにあるなら、YouTubeの自動字幕が作った字幕トラックをYouTube Studioからダウンロードし、テキストエディタで直せます。タイミングはたいてい近く、言葉のほうはたいてい手直しが必要です。完成品ではなく出発点と考えてください。

SRTファイルを動画に付ける方法

YouTube

YouTube Studioで動画を開き、「字幕」に進んで言語を追加し、「ファイルをアップロード」を選んでタイミング付きのオプションを指定し、.srt を選びます。YouTubeはSubRip(.srt)を対応する字幕形式の一つに挙げており、ファイル内のスタイル指定は無視します。

デスクトップの動画プレーヤー

字幕ファイルを動画と同じベース名にして、同じフォルダに置きます。

product-walkthrough.mp4
product-walkthrough.srt

VLCをはじめ、ほとんどのデスクトッププレーヤーは自動で読み込みます。読み込まれない場合は、再生中のウィンドウに .srt をドラッグするか、プレーヤーの字幕メニューから追加してください。複数の言語がある場合は、拡張子の前に言語コードを付けます:product-walkthrough.en.srt。

ソーシャルプラットフォーム

アップロード画面で字幕用の欄を探し、そこに .srt をアップロードします。そうした欄がなければ、文字を映像に焼き込む必要があります。ショート動画の多くはこのケースで、TikTok動画に文字を入れる方法の手順でその方法を説明しています。

Webページ

HTML5の <track> 要素はSRTを受け付けず、WebVTTを前提としているので、先にファイルを変換します。変換はほぼ造作もなく、それが両方の形式が残り続けている理由の一つでもあります。

外部字幕と焼き込み字幕

この違いで、上の方法のどれが自分に当てはまるかが決まります。そして多くの人は、たまたまこの違いに出くわします。

外部字幕(サイドカー)は、動画と一緒に届けられる別の .srt ファイルです。視聴者はオン・オフや言語を切り替えられ、プラットフォームや検索エンジンはテキストを読み取れ、誤字の修正もテキストファイルを直して再アップロードするだけです。動画が再エンコードされることはありません。難点は、プレーヤーやプラットフォームが字幕トラックに対応している必要があり、対応していないものも多いことです。

焼き込み字幕は、ハードコード字幕やオープンキャプションとも呼ばれ、書き出し時にフレームそのものに描き込まれたピクセルです。ミュートで自動再生され字幕トラックが外されるフィードも含め、どこでも表示されますが、オフにも翻訳にもできず、機械が読むこともできず、誤字が1つあれば動画を書き出し直すことになります。

受け付けてくれる場所では外部字幕のSRTを使い、受け付けない場所でだけ文字を焼き込みましょう。

トラブルシューティング

字幕がずれる

動画の冒頭と最後でずれを確認します。両方で同じだけずれているなら、一定のオフセットです。すべてのタイムコードに同じ量を足すか引けばよく、ほとんどの字幕エディタは1回の操作でできます。ずれが大きくなっていくならドリフトで、ほぼ例外なくフレームレートの不一致です。ずらすだけではドリフトは直りません。2つのフレームレートの比率でタイミングを伸縮させる必要があります。

アクセント付きの文字が文字化けする

アクセント付きの名前が疑問符や四角、奇妙なラテン文字の組み合わせで表示されるのは、字幕の問題ではなく文字コードの問題です。ファイルをUTF-8で保存し直してください。たいていのエディタは保存ダイアログで文字コードを選べます。

ファイルがまったく読み込まれない

可能性の高い順に:ファイル名が実は .srt.txt になっている、タイムコードにカンマではなくピリオドを使っている、ブロック間の空行が抜けている、連番の順序が乱れているか重複している、ファイルがRTFやDOCXで保存されている。上の有効な例と1ブロックずつ見比べてください。

ソーシャルプラットフォームで字幕が表示されない

アップロード画面に字幕の欄がなかったのなら、プラットフォームはそもそも字幕ファイルを受け取っていません。代わりに文字を動画に焼き込んでください。

SRT、VTT、ASSの比較

SRTWebVTTASS
正式名称SubRip SubtitleWeb Video Text TracksAdvanced SubStation Alpha
拡張子.srt.vtt.ass
ミリ秒の区切りカンマピリオドピリオドの後に100分の1秒
スタイルと配置なし配置に加え、CSSでスタイル指定フォント、色、配置、カラオケ式のタイミングまで本格的な組版
ヘッダーなしファイルは WEBVTT で始まるスクリプト情報のセクション
最適な用途プレーヤー、エディタ、アップロード画面を問わないほぼ全面的な互換性HTML5の <track> 要素を使ったブラウザでの再生文字の見た目を本格的に制御したい組版中心の作業

どこでも動くファイルが欲しく、特別な見た目が要らないときは、素のSRTを選びましょう。

出発点になるタイムスタンプ付きテキストを手に入れる

上のフォーマット作業はすぐ終わります。1時間の音声を手で文字起こしするのはそうはいきません。そこが字幕ファイルづくりの壁になっているなら、Laxis AIミーティングアシスタントがアップロードされた音声と動画を100以上の言語で文字起こしし、字幕ブロックに切り分けられるタイムスタンプ付きのテキストを返します。無料プランは月300分の文字起こしで、1回の録音は45分までです。有料プランは1ユーザーあたり月$15.99からです。

よくある質問

SRTファイルは文字起こしと同じものですか?

いいえ。文字起こしは話者ラベル付きの長さ制限のない連続した文章で、それ単体で読むためのものです。SRTファイルは同じ言葉を、動画の再生中に画面で読み切れる短さの、時間付きのブロックに切り分けたものです。一方からもう一方を作るには、文を分け、上限内に削り、時間を割り当てる編集が必要です。

専用ソフトなしでSRTファイルを開いて編集できますか?

はい。SRTファイルはプレーンテキストなので、メモ帳、テキストエディット、Vim、VS Codeのどれでも扱えます。Microsoft WordやGoogleドキュメントのようなワープロは、独自の形式で保存してファイルを壊すので避けてください。1語を直すのではなく何百ものタイムコードを調整するなら、専用の字幕エディタで大幅に時間を節約できます。

SRTファイルを追加すると、動画ファイル自体は変わりますか?

いいえ。外部字幕のSRTは動画に手を加えません。プレーヤーが両方のファイルを読み、再生中に文字を重ねて表示するので、誤字はSRTだけを直せば修正できます。焼き込み字幕は別で、書き出し時にフレームに固定されるため、直すには書き出し直しが必要です。

字幕が最初は合っているのに、だんだんずれていくのはなぜですか?

誤差が大きくなっていくなら、開始時刻の誤りではなくフレームレートの不一致です。23.976 fpsのマスターに合わせて作った字幕を25 fpsのコピーで再生すると、着実に遅れていきます。すべてのタイムコードを一定量ずらしても直りません。2つのフレームレートの比率でタイミングを伸縮させる必要があります。

字幕1行には何文字まで入れるべきですか?

NetflixのEnglish Timed Text Style Guideは、1行を42文字まで、字幕1つを2行までとしています。Netflixはさらに、画面上の表示時間を最短6分の5秒、最長7秒とし、大人向け番組の読む速さの上限を毎秒20文字としています。これらの数字は、ほぼどんな動画にも通用する妥当な目安です。

SRT字幕は動画が見つかりやすくなるのに役立ちますか?

外部字幕ファイルは、焼き込み字幕にはできない、機械が読めるテキストをプラットフォームに提供します。それが順位を動かすかどうかはプラットフォーム次第で、誠実な答えなら結果を約束することはありません。よりはっきりした利点は届く範囲の広さです。字幕があれば、音を消していても、耳の聞こえない人や聞こえにくい人でも動画を見られます。