ブログに戻る

1つの動画に複数言語の字幕をつける方法

1つの動画に複数言語の字幕をつける方法を解説。文字起こしは一度だけ行い、翻訳はレイヤーとして追加し、読み上げ速度とフォントを言語ごとに調整してから、ファイル・複数言語トラック・焼き込みという3つの書き出し方法から選びます。

2026年9月11日
Sablate Team

1つの動画に複数言語の字幕をつける作業は、1つの長い工程ではなく3つの決定です: 元の言語で一度だけ文字起こしを行い、他の言語はそれぞれ同じタイミングの上に翻訳レイヤーとして追加し、最後に配信方法を選びます — 言語ごとの個別ファイル、切り替え可能なトラックを持つ1本の動画、あるいは言語ごとの焼き込みコピーです。多言語字幕づくりが行き詰まるケースのほとんどは、この順序を間違えたことが原因です。

この記事では、実際にうまくいく順序と、その過程で翻訳がタイミングやフォントに与える影響、そして各プラットフォームが実際に受け付ける書き出し形式について解説します。

文字起こしは一度だけ、翻訳はレイヤーで

最も時間を無駄にする失敗は、言語ごとに音声認識をやり直すことです。

音声認識は同時に2つのことを行います。テキストを生成することと、キューの区切り — 各字幕がどこで始まり、どこで終わるか — を生成することです。テキストは言語ごとに変わりますが、区切りは変わってはいけません。同じ動画を5回文字起こしすると、少しずつ違う5種類の区切りができてしまい、スペイン語版の同期を直してもドイツ語版には何の効果もありません。これが2時間の録音になると、ワークフローそのものが崩壊します。

その代わりに文字起こしを翻訳すれば、タイムラインは1つのまま保たれます:

  1. 話されている言語での文字起こしを1回、正確なタイミング付きで。
  2. 修正を1回 — 名前、製品用語、句読点。
  3. 修正済みテキストを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 CPS42
ロシア語最大17 CPS42
韓国語最大12 CPS16
中国語(簡体字)最大9 CPS16
日本語最大4 CPS全角13文字

これらの上限は、恣意的な厳しさではありません。日本語の字幕は1文字が担う意味の量がはるかに多いため、同じ1秒間の発話でも画面に表示すべき文字数はずっと少なくなります。英語の上限まで文字を詰め込んだ機械翻訳の字幕は、読めるものではありません。

解決策としてタイムスタンプを動かすことは絶対にありません — タイムスタンプは音声に一致しており、それだけは変えられないものだからです。解決策は、文言を短くするか、キューを2つに分割することです。Sablateのエディタは編集中に17 CPSを超えるキューに警告を出しますが、これはラテン文字やキリル文字を使う言語の大半には適切な基準でも、日本語や韓国語に対しては意図的に緩めに設定されています。これは最低限の目安であって、合格の保証ではないと考えてください。

各言語に、描画できるフォントを用意する

この問題はレンダリングの瞬間まで見えず、そしてその瞬間になると非常にはっきり見えてしまいます。

表示用の字幕フォント — 字幕らしい見た目を作る太くて縦に詰まったフォント — の多くは、ラテン文字、キリル文字、ギリシャ文字しかカバーしていません。それをアラビア語、ヘブライ語、タイ語、デーヴァナーガリー、ハングル、CJKに当てると、すでに20分もかけてエンコードした動画の中に、空の四角が並ぶことになります。

Sablateはこれに対応するため、各言語レイヤーの文字体系を確認し、実際にそのグリフを含むシステムフォントに置き換えます。プレビューでも焼き込みでも同じ処理が行われるので、エディタで見た通りのものがファイルに反映されます。各言語レイヤーは独自のスタイルも持っており、これはフォントだけの問題ではありません: 英語ではちょうどよく読めるサイズが、16文字の韓国語の行には大きすぎることがよくあります。

YouTubeに複数言語の字幕をアップロードする

YouTubeは、1つの動画につき言語ごとに1つの字幕ファイルを、それぞれ別のステップでアップロードする形を取ります。複数言語をまとめてアップロードできる字幕ファイルというものは存在しません — 「複数言語」はファイルの中ではなく、プラットフォームの側にあるのです。

  1. YouTube Studioを開き、「字幕」から対象の動画を選びます。
  2. 「言語を追加」をクリックして言語を選び、「ファイルをアップロード」を選びます。
  3. その言語用の.srtまたは.vttをアップロードします。
  4. 言語ごとにこれを繰り返します。タイトルと概要欄の翻訳は別のセクションで行います。

知っておく価値がある点が2つあります。YouTube自体の自動翻訳は無料かつ即時で、コストの面では確かに他に負けません — ただしこれは自動生成された文字起こしを翻訳しているだけなので、認識が間違えた単語はすべての言語でそのまま間違って残ります。さらにYouTubeはすべてのキャプションをプレイヤー自体のスタイルで表示するため、あなたのファイルに設定したスタイルは視聴者には見えません。見た目が重要なら、焼き込んでください。

各ツールの立ち位置

SablateYouTube自動翻訳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つとも」であっても、やるべき作業は変わりません。