1つの動画に複数言語の字幕をつける方法
1つの動画に複数言語の字幕をつける方法を解説。文字起こしは一度だけ行い、翻訳はレイヤーとして追加し、読み上げ速度とフォントを言語ごとに調整してから、ファイル・複数言語トラック・焼き込みという3つの書き出し方法から選びます。
1つの動画に複数言語の字幕をつける作業は、1つの長い工程ではなく3つの決定です: 元の言語で一度だけ文字起こしを行い、他の言語はそれぞれ同じタイミングの上に翻訳レイヤーとして追加し、最後に配信方法を選びます — 言語ごとの個別ファイル、切り替え可能なトラックを持つ1本の動画、あるいは言語ごとの焼き込みコピーです。多言語字幕づくりが行き詰まるケースのほとんどは、この順序を間違えたことが原因です。
この記事では、実際にうまくいく順序と、その過程で翻訳がタイミングやフォントに与える影響、そして各プラットフォームが実際に受け付ける書き出し形式について解説します。
文字起こしは一度だけ、翻訳はレイヤーで
最も時間を無駄にする失敗は、言語ごとに音声認識をやり直すことです。
音声認識は同時に2つのことを行います。テキストを生成することと、キューの区切り — 各字幕がどこで始まり、どこで終わるか — を生成することです。テキストは言語ごとに変わりますが、区切りは変わってはいけません。同じ動画を5回文字起こしすると、少しずつ違う5種類の区切りができてしまい、スペイン語版の同期を直してもドイツ語版には何の効果もありません。これが2時間の録音になると、ワークフローそのものが崩壊します。
その代わりに文字起こしを翻訳すれば、タイムラインは1つのまま保たれます:
- 話されている言語での文字起こしを1回、正確なタイミング付きで。
- 修正を1回 — 名前、製品用語、句読点。
- 修正済みテキストをN言語に翻訳。すべてが同じキュー区切りを引き継ぎます。
レバレッジが働くのはステップ2です。翻訳前に直したスペルミスの姓は、どの言語でも直っています。翻訳後に同じ姓を直すとなると、8回別々に編集することになります。
Sablateでは、ジョブの構造自体がまさにこの考え方です: 翻訳は新しいジョブではなく、既存の文字起こしに追加されるレイヤーです。オフライン翻訳(Argos)はあなたのパソコン上で動作し、DeepL、OpenAI、Claudeは自分のAPIキーを用意すれば使えます。オフライン経路について知っておく価値があるのは、Argosが公開しているパッケージのほとんどが英語を片側に含むペアだけだという点です。そのためトルコ語からドイツ語のような組み合わせには直接のパッケージがなく、英語を中間ホップとして経由する形で構成されます。これは実際に機能しますが、トルコ語からドイツ語への行がトルコ語から英語への行よりもわずかに硬く読める理由でもあります。
始める前に書き出し形式を決める
これが書き出し全体を決めるので、最初に決めてください。
| 言語ごとの個別ファイル | 言語ごとに1トラックの1本のMKV | 言語ごとの焼き込みコピー | |
|---|---|---|---|
| 視聴者が言語を切り替えられるか | プラットフォーム側で | プレイヤー内で | できない |
| スタイルが残るか | 最小限(太字、斜体、色) | 残る、ASSトラック | 残る、デザインどおりに |
| YouTube / Vimeoで使えるか | 使える、ファイルを個別にアップロード | 使えない | 使える、単なる動画だから |
| TikTok / Reels / Shortsで使えるか | 使えない | 使えない | 使える |
| オフライン再生 / テレビやUSBメモリで使えるか | ファイル名を揃える必要がある | 使える、1ファイルで済む | 使える |
| 動画を再エンコードするか | しない | しない、ストリームはコピーのみ | する、言語ごとに1回 |
| 9番目の言語を追加するコスト | 小さなファイルが1つ増えるだけ | トラックが1つ増えるだけ | フルエンコードが1回増える |
多くの人が最終的に落ち着くパターンはこうです: 対応しているプラットフォームにはファイルを、アーカイブとローカル再生には1本のMKVを、そしてメイン視聴者が話す1〜2言語だけを焼き込みで用意する。
そのプラットフォームが.srt、.vtt、.assのどれを求めているか分からない場合は、形式の比較記事でそれぞれが何を扱えるのかを詳しく解説しています。
翻訳がタイミングに与える影響
翻訳された字幕は、決まった、予測できる形で崩れます: タイミングは正しいままなのに、その行がもう読めなくなるのです。
英語からスペイン語、フランス語、イタリア語、ポルトガル語に翻訳すると、多くの場合20〜30%長くなります。ドイツ語の複合語は別の形で長くなります — 単語数は少なくても、42文字の行に収まらない単語になるのです。キューの開始と終了は、話者が話し始めた瞬間と話し終えた瞬間のままです。視聴者は単純に、1.8秒でそれだけの文字数を読み切れません。
これを測る指標が**1秒あたりの文字数(CPS)**で、基準となる数値はNetflixの言語別スタイルガイドにあります:
| 言語 | 読み上げ速度(成人向け番組) | 1行あたりの文字数 |
|---|---|---|
| 英語(アメリカ) | 最大20 CPS | 42 |
| ロシア語 | 最大17 CPS | 42 |
| 韓国語 | 最大12 CPS | 16 |
| 中国語(簡体字) | 最大9 CPS | 16 |
| 日本語 | 最大4 CPS | 全角13文字 |
これらの上限は、恣意的な厳しさではありません。日本語の字幕は1文字が担う意味の量がはるかに多いため、同じ1秒間の発話でも画面に表示すべき文字数はずっと少なくなります。英語の上限まで文字を詰め込んだ機械翻訳の字幕は、読めるものではありません。
解決策としてタイムスタンプを動かすことは絶対にありません — タイムスタンプは音声に一致しており、それだけは変えられないものだからです。解決策は、文言を短くするか、キューを2つに分割することです。Sablateのエディタは編集中に17 CPSを超えるキューに警告を出しますが、これはラテン文字やキリル文字を使う言語の大半には適切な基準でも、日本語や韓国語に対しては意図的に緩めに設定されています。これは最低限の目安であって、合格の保証ではないと考えてください。
各言語に、描画できるフォントを用意する
この問題はレンダリングの瞬間まで見えず、そしてその瞬間になると非常にはっきり見えてしまいます。
表示用の字幕フォント — 字幕らしい見た目を作る太くて縦に詰まったフォント — の多くは、ラテン文字、キリル文字、ギリシャ文字しかカバーしていません。それをアラビア語、ヘブライ語、タイ語、デーヴァナーガリー、ハングル、CJKに当てると、すでに20分もかけてエンコードした動画の中に、空の四角が並ぶことになります。
Sablateはこれに対応するため、各言語レイヤーの文字体系を確認し、実際にそのグリフを含むシステムフォントに置き換えます。プレビューでも焼き込みでも同じ処理が行われるので、エディタで見た通りのものがファイルに反映されます。各言語レイヤーは独自のスタイルも持っており、これはフォントだけの問題ではありません: 英語ではちょうどよく読めるサイズが、16文字の韓国語の行には大きすぎることがよくあります。
YouTubeに複数言語の字幕をアップロードする
YouTubeは、1つの動画につき言語ごとに1つの字幕ファイルを、それぞれ別のステップでアップロードする形を取ります。複数言語をまとめてアップロードできる字幕ファイルというものは存在しません — 「複数言語」はファイルの中ではなく、プラットフォームの側にあるのです。
- YouTube Studioを開き、「字幕」から対象の動画を選びます。
- 「言語を追加」をクリックして言語を選び、「ファイルをアップロード」を選びます。
- その言語用の
.srtまたは.vttをアップロードします。 - 言語ごとにこれを繰り返します。タイトルと概要欄の翻訳は別のセクションで行います。
知っておく価値がある点が2つあります。YouTube自体の自動翻訳は無料かつ即時で、コストの面では確かに他に負けません — ただしこれは自動生成された文字起こしを翻訳しているだけなので、認識が間違えた単語はすべての言語でそのまま間違って残ります。さらにYouTubeはすべてのキャプションをプレイヤー自体のスタイルで表示するため、あなたのファイルに設定したスタイルは視聴者には見えません。見た目が重要なら、焼き込んでください。
各ツールの立ち位置
| Sablate | YouTube自動翻訳 | Subtitle Edit | クラウド字幕ツール | |
|---|---|---|---|---|
| 価格 | $29、買い切り | 無料 | 無料、オープンソース | 通常月$16〜23 |
| 動画がパソコンの外に出るか | 出ない、クラウドAPIキーを有効にした場合を除く | 出る | 出ない | 出る |
| 1回の文字起こしから複数の言語レイヤー | できる | できる、自身の文字起こしから | できる、手動で | ツールによる |
| 言語ごとのスタイルと文字体系フォント | 対応 | 非対応、プレイヤーのスタイルのみ | 非対応 | ほぼ非対応 |
| 複数トラックのMKV書き出し | 対応(Pro) | 非対応 | 外部muxingを経由 | 非対応 |
| 長時間の録音 | Proは長さ無制限 | 動画全体 | 制限なし | 分単位課金が多い |
| フル動画をカバーする無料プラン | ない — 無料は10分まで | ある、長さ無制限 | ある、すべて対応 | 通常ウォーターマーク付き |
Subtitle Editについては正直に触れておく価値があります: 無料で、優れていて、文字起こしも翻訳もできます。その代わりに求められるのは設定作業です — モデル、ツール、muxingをそれぞれ別に構成する必要があり、スタイル付きの焼き込みは作れません。そうした設定作業が苦にならない人にとっては、このカテゴリーで最良の無料の選択肢です。
結果を書き出す
レイヤーがそろえば、書き出し自体は短い作業です:
- 言語ごとの字幕ファイル —
.srt、.vtt、.txtのいずれかを言語ごとに1つ、プラットフォームへのアップロード用に。 - 全言語を収めた1本のMKV — 各言語を正しい言語タグ付きの独立したASSトラックとして書き込み、字幕フォントをファイルに添付し、最初のトラックをデフォルトに設定します。映像と音声はストリームコピーなので何も再エンコードされず、書き出しはエンコードにかかる時間ではなく数秒で完了します。Pro。
- 焼き込み動画 — 言語ごとに1本、16:9、9:16、1:1のいずれかでレンダリング。TikTok、Reels、Shortsで通用する唯一の配信方法です。焼き込みの仕組みでは画質面について詳しく解説しています。
無料プランでは1つのジョブにつき1つのオフライン翻訳レイヤーが使え、10分の壁を最初に超えるジョブでは3つのレイヤーを使える場合があります。Proは$29の一度きりの支払いでこの制限をすべて外します — 具体的な内容は料金ページをご覧ください。
まとめ
文字起こしは一度だけ。何かを翻訳する前に、その文字起こしを修正する。言語は同じタイミングの上にレイヤーとして追加する。テキストが変わればどちらも変わるので、言語ごとに読み上げ速度とフォントを確認する。そして、そのプラットフォームが実際に受け付ける書き出し形式を1つ選ぶ — その答えが「3つとも」であっても、やるべき作業は変わりません。