二か国語字幕の作り方?SRT・VTT・ASSの3形式比較
二か国語字幕の難所は「翻訳」ではありません——翻訳はツールに任せられます。本当に人をつまずかせるのは、訳し終えたあと、2行のテキストをどう1つの字幕ファイルに収めるかです。
二か国語字幕には2つの作り方があります:1ファイル2行方式(1項目に2行のテキストを書く)と2トラック方式(原文・訳文を別々のトラックにして個別にON/OFF)。2トラック方式は自分のローカル再生向け。プラットフォームやクライアントに納品するなら1ファイル2行方式——トラックを1本しか受け付けないプラットフォームは多く、ユーザーがONにしなければ何も表示されません。以下では1ファイル2行方式の書き方を説明します。
SRT:互換性最強、ただしスタイルなし
SRTの二か国語は単純に2行のテキストで、順序がそのままレイアウトになります:
1
00:00:01,000 --> 00:00:03,000
We'll cover three things today
今日は3つのテーマについて話します
2行は同じ項目に属し、同じタイムコードを共有します。間に空行を入れてはいけません——空行は「次の字幕の開始」と解析されるからです。さらにSRTは一切の行内スタイルに対応しないため、2行の文字サイズ・色・位置は完全に同じです。
つまりSRTでは、順序こそが唯一のレイアウト手段です。上に置いた行を、視聴者は先に読みます。
向いている場面:YouTubeへのCCアップロード、大半のプラットフォームへの字幕読み込み、クライアントへの納品。
VTT:スタイルを足せるが、プラットフォーム対応はまちまち
VTT(WebVTT)はファイル先頭にWEBVTTの1行が必須で、タイムスタンプのミリ秒はピリオドで区切ります(00:00:01.000)——SRTはカンマを使います。これが2つのもっとも分かりやすい違いです。二か国語も同じく2行ですが、クラス名でマークできます:
WEBVTT
1
00:00:01.000 --> 00:00:03.000
<c.en>We'll cover three things today</c>
<c.ja>今日は3つのテーマについて話します</c.ja>
CSSの::cueルールと組み合わせたり、cueの位置パラメータ(line、position、align)で2行を別々の場所に置いたりでき、表現力はSRTよりかなり上です。
向いている場面:ウェブプレイヤー、HLSストリーミング。注意:ローカルプレイヤーと一部のプラットフォームでは、VTTの対応はSRTほど普及していません。「読み込める」のあとにどう表示されるかは、各社で差が大きい部分です。
ASS / SSA:二か国語レイアウト最強、基本は焼き込み用途
ASSは2行に別々のスタイルを設定できる唯一の形式です:原文(英語)と訳文(日本語)にそれぞれスタイル(文字サイズ、フォント、色、縁取り、マージン)を定義し、イベントセクションの同じ時間点に2つのレコードを書きます。
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.50,EN,,0,0,0,,We'll cover three things today
Dialogue: 0,0:00:01.00,0:00:02.50,JA,,0,0,0,,今日は3つのテーマについて話します
2行は別々のスタイルを指し、原文をやや大きく、訳文をやや小さくでき、位置も正確に制御できます——SRTとVTTにはどちらもできないことです。
代償:ASSは主にローカル再生とハード字幕の焼き込み向けで、アップロード用字幕として受け付けるオンラインプラットフォームは少数派です。時間形式は時:分:秒.百分秒(2桁)で、SRTともVTTとも違います。
上下の並び順:正解はないが、統一は必須
視線は上から下へ動くため、上の行が先に読まれ、順序が優先順位を決めます。
| 視聴者の構成 | 推奨する順序 | 理由 |
|---|---|---|
| 海外視聴者が中心(TikTok、Reels、Shorts) | 訳文を上、原文を下 | ターゲットの視聴者が理解できる行を先に読ませる |
| 既存の視聴者が中心で、多言語展開も視野に | 原文を上、訳文を下 | 既存視聴者の視聴習慣を変えない |
| 二か国語教材・語学学習 | 原文を上、訳文を下 | 学習者が先に原文を読み、訳文と照らし合わせる |
「どちらが正しいか」より大事なのは全編での統一です。途中で順序を変えると、視聴者は何度も読む位置を探し直すことになります。さらに二か国語では1項目あたり2行分の空間しかなく、折り返しの余裕はありません。一般的な規格では日本語は1行16字程度、英語は42文字以内が目安なので、訳文は事前に圧縮しておく必要があります。
ツールで二か国語SRTを直接生成する
手動で行を組み立てるとミスが起きやすいものです——空行の入れ忘れ、タイムコードのコピーシフト、項目数の不一致。二か国語SRT生成ツールなら、これらの工程をまるごと飛ばせます:原文SRTをアップロードすれば、ツールがタイムコードを解析し、テキストを翻訳し、「原文+訳文」の上下配置で組み立てて、二か国語SRTをその場でダウンロードできます。無料・登録不要で、制限は1ファイル1MB・500字幕項目まで、各ツール各IPで1日3回です。
手元にまだSRTがないなら、SmileSubのメインフローは動画から始められます:動画をアップロード → 音声を自動認識 → 翻訳 → 二か国語字幕を画面に焼き込み → 完成映像をダウンロード。日本語・英語・中国語・韓国語など20言語の相互翻訳に対応しています。完成映像とは別に字幕ファイルを1部残しておけば、YouTubeのCCトラックにもそのまま使えます。
よくある質問
作った二か国語字幕がプレイヤーで1行しか表示されないのは?
大半は2行の間に誤って空行が入ったケースです——2行目が新しい項目として解析されますが、それ自身のタイムコードを持たないため、まとめて捨てられます。項目数が元の数と一致しているかを確認すれば、原因を切り分けられます。
SRTで2行の文字サイズを変えられますか?
できません。SRTにはスタイル層がなく、2行は完全に同一です。原文と訳文でサイズや色を変えたいなら、ASSを使うか、字幕を画面に焼き込んでレンダリング時に個別に設定するしかありません。
VTTとSRTのミリ秒区切りは同じですか?
違います。ここがもっとも書き間違えやすい部分です:SRTはカンマ(00:00:01,000)、VTTはピリオド(00:00:01.000)。SRTの拡張子をそのまま.vttに変えても通常は解析できません。ファイル先頭にWEBVTTの1行も欠けているからです。