動画に字幕を焼き込む方法(どこにもアップロードせずに)
動画に字幕を焼き込む方法を解説。アップロードせずに自分のパソコンだけで使える4つの手法を比較し、実際に動作するFFmpegコマンドの具体例と、再エンコードによって生じる画質劣化を避けるための実践的なコツを詳しく紹介します。
動画に字幕を焼き込むとは、テキストを映像そのものに描き込んで再エンコードすることで、キャプションはファイルの中をピクセルとして移動するようになります。字幕ファイルを一切受け付けないTikTok、Reels、Shortsではこれが必須ですし、キャプションがアクセシビリティのための選択肢ではなくデザインの一部である場合にも必要です。
作業のためにどこかへアップロードする必要はありません。FFmpegならコマンド1つで済み、HandBrakeとSubtitle Editはウィンドウ上の操作で焼き込めます。Sablateのようなデスクトップ向けの字幕アプリなら、その前の字幕づくりまで行えます。いずれも自分のパソコン上で動くので、ファイルサイズの上限もアップロードの待ち時間もありません。
この記事では、オンラインツールがそれでも適した選択になる場面、字幕を焼き込む4つの方法、コマンドラインを使わずに行う方法、長い録画で何が変わるか、そして本当に画質を損なう2つの原因について解説します。
オンラインツールか、オフラインか: どちらを選ぶべきか
この作業を検索すると最初に出てくるのはブラウザ上のエディタで、短いクリップならそれで問題ありません。差が出るのは、長さ、ファイルサイズ、プライバシーの3点です。
| オンラインエディタ | オフライン(FFmpeg、HandBrake、デスクトップアプリ) | |
|---|---|---|
| 動画をアップロードするか | する、ファイル全体を | しない |
| ファイルサイズ | プランごとに上限がある | ディスク容量だけが限度 |
| 長い録画 | 長さに比例してアップロード時間が延びる | かかるのはエンコードの時間だけ |
| 機密性のある映像 | パソコンの外に出る | パソコンの中にとどまる |
| インストールは必要か | 不要 | 必要 |
| 字幕そのものも作れるか | たいてい作れる | デスクトップアプリは作れる、FFmpegとHandBrakeは作れない |
上限は現実の問題で、無料プランでは低く設定されています。たとえばKapwingのストレージポリシーでは、1ファイルあたり無料プランは250 MB、有料プランは6 GBまでです。1080pの一般的なビットレートである約8 Mbpsなら、250 MBに収まるのは4分強の動画です。
つまり、オンラインエディタを使うのは、クリップが短く、中身に機密性がなく、目の前のパソコンにソフトをインストールできない場合です。数分を超える長さの動画、クライアントや社内向けの映像、複数ファイルをまとめて処理する場合は、ローカルで焼き込んでください。字幕の作成までできるデスクトップアプリは、オフライン字幕生成ツールの比較で取り上げています。
焼き込みが正しい選択になるとき
| 焼き込み(ハードサブ) | 字幕ファイルまたはトラック(ソフトサブ) | |
|---|---|---|
| 視聴者がオフにできるか | できない | できる |
| TikTok、Reels、Shortsで使えるか | 使える | 使えない、対応していない |
| YouTube、Vimeoで使えるか | 使える | 使える、しかも検索可能 |
| アクセシビリティ対応として認められるか | 通常は認められない | 認められる |
| 検索エンジンにインデックスされるか | されない | される |
| 後から誤字を直せるか | 動画を再レンダリングする必要がある | テキストファイルを編集するだけ |
| 1つのファイルに複数言語を収められるか | 収められない、言語ごとに1本のレンダリングが必要 | 収められる、言語ごとに1トラック |
| スタイルがそのまま保たれるか | 保たれる | ASSトラックの場合のみ保たれる |
多くの人にとって、実用的な答えは「両方」です: 他の方法が通用しない縦型のソーシャルプラットフォーム向けには焼き込みを使い、字幕ファイルを読み込むあらゆる場所にはファイルを用意する — ファイルなら検索でき、切り替えられ、後から修正できるからです。1つの作業から両方を得たい場合は、複数言語での配信で、同じタイムラインから2種類の出力を作る方法を解説しています。
字幕を焼き込む4つの方法
| FFmpeg | HandBrake | ブラウザツール | デスクトップ向け字幕アプリ | |
|---|---|---|---|---|
| 価格 | 無料 | 無料 | 無料プランあり、その後はサブスクリプション | 買い切りまたはサブスクリプション |
| 動画をアップロードするか | しない | しない | する、ファイル全体を | しない |
| ファイルサイズ・長さの上限 | ない | ない | ある、たいてい厳しい | ない |
| 字幕そのものを作れるか | 作れない | 作れない | 作れる | 作れる |
| スタイルの制御 | ASSまたはforce_style経由 | 限定的 | テンプレートのみ | 完全に制御可能、リアルタイムプレビュー付き |
| 学習コスト | コマンドラインの知識が必要 | 中程度 | ほぼない | 低い |
正直な補足を2つ。FFmpegとHandBrakeは無料でありながら、この作業には十分すぎる性能を持っています。すでに完成した字幕ファイルがあるなら、FFmpegはコマンド1つで済み、何かを買う理由はありません。どちらも行わないのが、字幕そのものを作ることです — あくまで、別の場所でタイミングと修正が済んだファイルを焼き込むだけです。ブラウザツールは字幕を作ることもできますが、アップロードは避けられないため、機密性のある素材や、上限を超える長さの素材には使えません。
FFmpegで焼き込む
プレーンなSRTの場合:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4
スタイル付きのASSファイルの場合は、スタイルが失われず反映されるよう、assフィルターを使います:
ffmpeg -i input.mp4 -vf "ass=subs.ass" -c:a copy output.mp4
既定の設定に任せず、品質を明示的に指定する場合:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" \
-c:v libx264 -crf 18 -preset slow -c:a copy output.mp4
SRTを事前に変換せず、スタイルだけを変更する場合:
ffmpeg -i input.mp4 \
-vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,Outline=2'" \
-c:a copy output.mp4
Windowsの落とし穴。 フィルター内のパスは、シェルではなくフィルター自身がパースします。そのため、ドライブ文字の後のコロンとバックスラッシュはエスケープしなければなりません。ファイルが確かに存在するのに、コマンドがファイル未検出エラーで失敗する最も多い原因はこれです:
ffmpeg -i input.mp4 -vf "subtitles='C\:/Videos/subs.srt'" -c:a copy output.mp4
できる限り、字幕ファイルは作業ディレクトリに置き、ファイル名だけを指定してください — そうすればこの問題自体が起こりません。
コマンドラインを使わずに字幕を焼き込む
ターミナルの操作が苦手なら、ウィンドウ上の操作で同じ作業ができるツールが3種類あります。最初の2つは無料で、すでに手元にある字幕ファイルを焼き込みます。3つ目は字幕ファイルそのものも作ります。
HandBrake
HandBrakeはWindows、Mac、Linuxで使える無料の動画変換ソフトです。動画を開き、Subtitlesタブに移動して、Tracksから外部のSRTを追加し、そのトラックを映像に焼き込む設定にして、エンコードを開始します。知っておきたい制限が2つあります。HandBrakeのドキュメントによれば、MP4に焼き込めるトラックは1本だけで、スタイルも素のSRTが持つ範囲に限られます。
Subtitle Edit
無料の字幕エディタであるSubtitle Editには、Videoメニューに焼き込み付きの書き出し機能があり、FFmpegを代わりに実行してくれます。FFmpegが見つからない場合は、ダウンロードも提案されます。すでにそこでタイミングを直しているなら、自然な選択肢です。
デスクトップ向けの字幕アプリ
修正済みの字幕ファイルをまだ持っていない場合、焼き込みは文字起こし・修正・スタイル設定・レンダリングという、より長い作業の最後の一歩にすぎません。Sablateはこの一連の作業を、すべて自分のパソコン上だけで完結させます — Whisperによるローカルでの文字起こし、タイムライン上での再タイミングと読み上げ速度の警告付きエディタ、13種類のキャプションプリセット、そしてプレビューと一致する焼き込みです。DaVinci Resolveで編集しているなら、代わりに無料版でもSRTを読み込み、書き出し時に焼き込むことができます。
焼き込みは無料プランでも、小さなコーナーマーク付きで、10分までの動画に使えます。Proはそのマークと長さの制限を外し、.ass、複数トラックの.mkv、バッチ書き出しを$29の一度きりの支払いで追加します。詳しい違いはダウンロードページ、または料金ページをご覧ください。
長い動画や大きな動画に字幕を焼き込む
長さによって変わることは2つあります。ファイルをツールに届けることと、エンコードそのものです。
アップロード。 約8 Mbpsの1080pで2時間の録画は、約7 GBになります。上り20 Mbpsの回線では、オンラインツールが処理を始める前に50分近くかかり、仕上がったファイルをダウンロードで戻す手間も加わります。ローカルで焼き込めば、この工程は丸ごと不要です。
エンコード。 焼き込みはすべてのフレームを再エンコードするため、2時間のファイルはどんなパソコンでも相応の時間がかかります。本番のエンコードに入る前に最初の1分間を書き出し、1時間待ったあとではなくその場で、フォント、サイズ、位置を確認してください:
ffmpeg -i input.mp4 -t 60 -vf "subtitles=subs.srt" -c:v libx264 -crf 18 -preset slow -c:a copy test.mp4
速度とサイズ。 -preset mediumはslowより明らかに速く、同じCRFではファイルがわずかに大きくなります。ハードウェアエンコーダー(NVIDIAカードではh264_nvenc、Macではh264_videotoolbox)はさらに速いものの、同じ見た目の品質を得るにはより高いビットレートが必要です。どちらの場合も-c:a copyは付けたままにしてください。長いファイルの音声を再エンコードしても、時間がかかるうえに劣化が一世代重なるだけで、得るものはありません。
SablateのProには長さの制限がなく、レンダリングは進行状況バーとキャンセルボタン付きでローカルに実行されます。長編1本分の録画でも、ファイルを分割する必要はなく、待つだけで済みます。
実際に画質を損なうもの
画質を損なう原因は2つあり、いずれも焼き込み自体ではありません。
すでに圧縮済みのファイルを再エンコードすること。 焼き込みには再エンコードが必要で、これは非可逆な処理です。マスターファイルに対して行うなら、目に見える劣化はほとんどありません。しかし、プラットフォームがすでに圧縮したファイルに対して行うと、圧縮アーティファクトをさらに圧縮することになり、そこでブロックノイズや輪郭のにじみが発生します。常に持っている中で最も高品質なバージョンから始め、すでに一度焼き込んだファイルに、キャプションを重ねて焼き込むことは絶対に避けてください。
エンコーダーの既定設定のまま使うこと。 x264での-crf 18は、ほとんどのコンテンツで目にはほぼ劣化が分からないレベルです。既定値の23は、精細な映像では明らかに甘くなります。-preset slowは、時間と引き換えに同じ品質でファイルを小さくします。そして-c:a copyは音声ストリームをそのまま保持します — 映像だけを変更しているのに、音声まで再エンコードする理由はありません。
レンダリング結果がプレビューと一致しない理由
原因は2つあり、いずれもエンコードにかける前に直せます。
フォント。 レンダラーは、見つけられるフォントで描画します。選んだフォントがインストールされていない、あるいはその文字体系を描画できない場合 — 表示用のキャプション向けフォントの大半は、ラテン文字、キリル文字、ギリシャ文字しかカバーしていません — 代わりのフォントが使われ、アラビア語、タイ語、ハングル、CJKのテキストは空の四角として表示されることがあります。12言語をレンダリングした後ではなく、前にフォントを確認してください。
キャンバスサイズ。 ASSの位置指定とフォントサイズは、動画のピクセル寸法ではなく、ファイル内で宣言された仮想キャンバスに対する相対値です。キャンバスが固定されていない限り、同じフォントサイズでも1080pの映像と4Kの映像では画面上の表示サイズが変わります。Sablateはキャプション用のキャンバスを高さ1080の仮想フレームに固定し、回転情報を含む元映像の実際のアスペクト比から幅を導き出します。そのため、フォントサイズはどの解像度で撮影しても同じ意味を持ち、エディタのプレビューもレンダラーが使うものとまったく同じキャンバスに合わせて拡大縮小されます。
これは、ツールによって焼き込みの品質がこれほど違う理由でもあります。多くのオンラインエディタは、キャプションを単なる平坦なテキストオーバーレイとして合成しています。一方、Sablateの焼き込みはlibassによってレンダリングされます — これはメディアプレイヤーがASS字幕の表示に使っているのと同じエンジンです。そのため、輪郭線、影、単語単位のカラオケタイミング、文字体系に合ったフォントは、近似的なグラフィックではなく、本物の字幕タイポグラフィとして仕上がります。
縦型・正方形での出力
動画をReels、Shorts、TikTokに配信する場合は、後からクロップするのではなく、レンダリング中にアスペクト比を変換してください。焼き込みが済んだ16:9の動画を9:16にクロップすると、映像と一緒にキャプションの両端も切り取られてしまいます。
Sablateは16:9(1920×1080)、9:16(1080×1920)、1:1(1080×1080)のいずれかでレンダリングし、対象のフレームにクロップするか、元映像をぼかしたコピーでパディングして、キャプションを最終的なフレームに合わせて配置します。縦型フレームでは、字幕を下3分の1より上に置いてください。MetaのReels向けガイダンスは下端の35%を空けておくよう示しており、その部分はプラットフォーム自身の文字とボタンに覆われるためです。各プラットフォームのセーフゾーンは、Reels、TikTok、Shortsの字幕の位置で紹介しています。
まとめ
オンラインエディタを使うのは、機密性のない短いクリップだけにして、それ以外はローカルで焼き込んでください。アップロードも、サイズの上限も、長さの上限もないからです。プラットフォームが字幕ファイルを読み込まない場合、またはキャプションが見た目そのものの一部である場合は焼き込んでください。それ以外の場所には字幕ファイルを用意してください — 編集できるテキストは、編集できないピクセルに勝ります。アップロード用のコピーではなく、マスターからレンダリングしてください。CRF 18を使い、音声はコピーしてください。長いファイルは、本番のエンコードの前に最初の1分間を試してください。そしてそのエンコードにかける前に、フォントとキャンバスを確認してください — 完璧なはずの字幕ファイルが誤って表示されてしまう原因は、この2つだからです。
よくある質問
動画に字幕を焼き込むと、実際には何が起きるのですか?
テキストを映像そのものに描き込み、動画を再エンコードします。その結果、キャプションは独立したトラックではなくピクセルになります。誰も字幕をオフにできなくなり、プレイヤー側が字幕形式に対応している必要もなく、字幕ファイルを読み込まないプラットフォームでも正しく表示されます。代わりに、変更は不可能になり、1回分の再エンコードのコストがかかります。
字幕を焼き込むと、動画の画質は落ちますか?
動画を再エンコードするため、多少の劣化は避けられませんが、目に見えないレベルに抑えることは可能です。すでに圧縮済みの書き出しではなく最高品質のマスターからエンコードし、x264のCRF 18のような品質基準の設定を使い、音声ストリームは再エンコードせずコピーしてください。同じファイルを2回焼き込むことこそが、劣化を目立たせる原因です。
動画をアップロードせずに、字幕を焼き込むことはできますか?
できます。FFmpeg、HandBrake、デスクトップ向けの字幕アプリケーションはすべて自分のパソコン上だけで完結し、アップロードもファイルサイズの上限もありません。ブラウザ上で動くツールは、まず動画全体をサーバーにアップロードする必要があるため、ファイルサイズと長さに上限を設けており、2時間の録音は通常そこで失敗します。
動画に字幕を焼き込むFFmpegのコマンドは何ですか?
プレーンなSRTの場合は ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:a copy output.mp4 です。スタイル付きのASSファイルの場合は、subtitlesの代わりにassフィルターを使います。Windowsではフィルター内のパスをエスケープする必要があり、これがコマンドがファイル未検出エラーで失敗する最も多い原因です。
焼き込んだ字幕が、プレビューと違って見えるのはなぜですか?
多くの場合、原因はフォントかキャンバスサイズです。選んだフォントが存在しない、またはその文字体系を描画できない場合、レンダラーは別のフォントに置き換えます。また、フォントサイズは仮想キャンバスに対する相対値なので、同じ数値でも1080pの映像と4Kの映像では表示サイズが変わります。プレビューとレンダリングの結果を一致させるには、同じフォントと同じキャンバスを使う必要があります。
TikTok、Reels、Shortsには、字幕を焼き込む必要がありますか?
必要です。これらのプラットフォームはいずれも、アップロード時に字幕ファイルを添付する仕組みを持っていません。そのためキャプションは、動画に焼き込むか、プラットフォーム自身が自動生成するかのどちらかになります。プラットフォームによる自動生成キャプションは無料ですが、スタイルはプラットフォームに決められ、人名や専門用語をよく誤るため、多くのクリエイターは自分で焼き込んでいます。
長い動画に字幕を焼き込むには、どうすればいいですか?
ローカルで行ってください。1080pで2時間の録画は数ギガバイトあり、ほとんどのブラウザツールが受け付ける容量を超えるうえ、一般的な回線ではアップロードだけで1時間ほどかかります。FFmpeg、HandBrake、デスクトップアプリなら、自分のパソコン上で再エンコードできます。本番のエンコードの前に最初の1分間をテスト用に書き出し、音声は再エンコードせずコピーしてください。