
動画への字幕焼き込み:実際に機能する設定
Summarize this article with:
焼き込みとソフト、1分でわかる違い
焼き込み字幕(オープンキャプション)は、映像フレームに焼き付けられたピクセルです。 プレイヤーやプラットフォームを問わず必ず表示され、視聴者側の操作も不要です。ソフト字幕(クローズドキャプション)は、動画ファイルに添付された独立したテキストトラックです。視聴者は表示・非表示を切り替えられ、検索エンジンはテキストをインデックス化でき、再レンダリングせずに別言語へ差し替えることもできます。
どちらが必要かは、公開先次第です。TikTok、Instagram Reels、そしてダウンロードされる動画ファイルのほとんどでは、焼き込みが唯一確実な方法です。YouTube、Vimeo、LinkedInでは、ソフトトラックの方が適しています。このガイドの残りの部分では焼き込みに焦点を当てます。いつ必要になるのか、FFmpegや動画編集ソフトでのやり方、そして重要な品質とスタイリングのトレードオフについて解説します。
対となる「ソフト字幕トラックの選び方とアップロード方法」については、動画への字幕追加ガイドを参照してください。オープンキャプションとクローズドキャプションの概念的な違いについては、オープンキャプション vs クローズドキャプションの解説記事をご覧ください。
焼き込みが必要なケースと不要なケース
TikTokとInstagram Reelsには、クリエイター投稿動画向けの信頼できる字幕切り替え機能がありません。 Instagramはリール作成中に自動字幕ステッカーを提供し、音声認識でキャプションを生成しますが、視聴者がオン/オフを切り替えられる事前作成済みSRTファイルは受け付けていません。TikTok Studioには自動字幕生成機能と手動テキスト編集がありますが、視聴者が切り替えられる本物のクローズドキャプショントラックはありません。どちらのプラットフォームでも、端末や設定に関係なく全ての視聴者にキャプションを見せる唯一の方法は、焼き込みテキストです。
焼き込みを避けてソフトトラックを使うべきプラットフォーム:
- YouTube: YouTube StudioからSRTまたはVTTファイルをアップロードします。視聴者は字幕のオン/オフや言語切替ができ、Googleがテキストをインデックス化できます。
- LinkedIn: LinkedInは動画アップロード時に添付されたSRTファイルを受け付けます。キャプションは切り替え可能なオーバーレイとして表示されます。
- Vimeo: SRT/VTTのアップロードに対応し、切り替え可能なトラックとして扱えます。
- Facebook: SRTのアップロードを受け付けますが、Facebook自身の自動キャプション機能が自動的に処理することも多いです。
マルチプラットフォーム運営のクリエイター向けの実用的なハイブリッド手法:ショート動画向けSNSにはスタイル付きの焼き込み版を作り、YouTube版にはクリーンなSRTを併せてアップロードします。元のキャプションファイルは同じで、書き出しだけが異なります。
ステップ1:焼き込む前にSRTを仕上げる
焼き込んだキャプションは、レンダリング後の編集ができません。誤字3つを直すために4K動画1時間分をやり直すのは、現実のレンダリング時間という大きなコストになります。FFmpegや編集ソフトに触れる前に、SRTを校正しましょう。
出発前の簡易チェックリスト:
- テキストエディタでSRTの全行を読みます。
- ランダムな3〜4箇所で、タイムコードと音声を照合します。
- キャプションブロックは最大2行、1行あたり最大42文字に抑えます。
- 固有名詞、ブランド名、数字が正しいことを確認します。
- 使用予定のフォントがファイル内の全文字をカバーしているか確認します(ラテン文字以外の文字種はここで要注意)。
まだSRTをお持ちでない場合は、字幕ジェネレーターが数分でタイムコード付きSRTを生成し、99言語に対応しています。

ステップ2:FFmpegで焼き込む
FFmpegは、単発の焼き込みにもバッチ処理にも最速の手段です。基本のコマンド:
ffmpeg -i input.mp4 -vf "subtitles=captions.srt" -c:a copy output.mp4
-vf フラグは動画フィルターを適用します。subtitles フィルターはlibassレンダラー経由でSRTを読み込み、テキストを重ね合わせます。-c:a copy フラグは音声トラックを再エンコードせずにコピーします。
デフォルトでは、フレーム下部付近に黒縁取りの白テキストが描画されます。スタイルを指定する場合は、force_style でパラメータを渡します:
ffmpeg -i input.mp4 \
-vf "subtitles=captions.srt:force_style='Fontname=Arial,FontSize=24,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=3,Outline=2,Shadow=1,Alignment=2,MarginV=40'" \
-c:a copy \
output.mp4
force_style の構文について知っておくべき2つのポイント:
- 色の値はRGBではなくASS/BGR形式です。
&H00FFFFFFは白です(00=アルファ、以降BGRの順にFF=青、FF=緑、FF=赤)。HTMLの16進カラーコードをそのままコピーすると正しく表示されません。 BorderStyle=3はテキストの背後に背景ボックスを付けます。BorderStyle=1は縁取りを付けます。情報量の多い映像背景では、ボックススタイルの方が読みやすくなります。
画質とファイルサイズ
字幕の焼き込みでは、動画全体の再エンコードが強制されます。音声はコピーされますが、映像フレームはデコードされ、テキストと合成され、再エンコードされます。H.264出力の場合、FFmpegのデフォルトはCRF 23で、Web配信には十分です。高品質なソースから作業していて世代劣化を最小限に抑えたい場合は、-crf 18 または -crf 20 を指定します:
ffmpeg -i input.mp4 \
-vf "subtitles=captions.srt:force_style='Fontname=Arial,FontSize=24,BorderStyle=3,Alignment=2,MarginV=40'" \
-c:v libx264 -crf 18 -c:a copy \
output.mp4
CRFが低いほど=高画質=ファイルサイズ大。SNSへのアップロードならCRF 20〜23が妥当な目標です。アーカイブ用途ならCRF 18。28を超えるとテキスト描画自体がブロック状に見えるので避けましょう。
ステップ3:動画編集ソフトで焼き込む
作業中にプレビューを見ながら進めたいなら、主要な編集ソフトはすべて焼き込みに対応しています。Premiere Pro、DaVinci Resolve、Final Cut Pro、CapCutのいずれでもワークフローは共通です:
- 動画をタイムラインに読み込みます。
- SRTをキャプションまたは字幕トラックとして読み込みます(Resolveでは「Subtitles」、Premiereでは「Captions」と呼ばれます)。
- キャプションスタイルツールでフォント、サイズ、色、位置を選びます。
- 書き出し時に、キャプションを動画に焼き付けるオプションを選択します。
DaVinci Resolveでは、Deliverページを開き、Subtitle Settingsを開いてExport Subtitleにチェックを入れ、フォーマットのドロップダウンから「Burn into video」を選択します。この設定でキャプションがフレームに恒久的に描画されます。
Premiere Proでは、書き出しダイアログで「Export Captions」にチェックを入れ、「Sidecar file」ではなく「Burn captions into video」を選択します。
FFmpegに対する利点はリアルタイムプレビューです。タイムライン上でキャプションを確認し、レンダリングを確定する前にスクラブしてタイミングをチェックできます。欠点は、編集ソフトがSRTの読み込みを壊すことがある点です。特にASCII以外の文字や特殊な改行で起きやすいです。本番の書き出し前に、短いクリップでテストしましょう。
多言語の一括焼き込みでは、SRTの差し替えをスクリプト化できるため、GUIエディタよりもFFmpegの方が信頼できます:
for lang in en es fr de; do
ffmpeg -i input.mp4 \
-vf "subtitles=captions-${lang}.srt:force_style='Fontname=Arial,FontSize=24,BorderStyle=3,Alignment=2,MarginV=40'" \
-c:v libx264 -crf 20 -c:a copy \
output-${lang}.mp4
done
各言語バージョンは個別のレンダリングになります。タイムコードは翻訳間で同じなので、差し替えるのはテキストファイルだけです。パイプライン全体については、字幕翻訳ワークフローガイドを参照してください。
ステップ4:プラットフォームに合わせたスタイリング
焼き込みキャプションは、「自分のタイムラインで読めるか」だけでなく、各プラットフォームの実際の視聴画面レイアウトに合わせたサイズにする必要があります。
TikTokとInstagram Reels(9:16縦型): 白テキスト、36〜48px相当のフォントサイズ、不透明度約70%の背景ボックス。水平方向は中央揃え。TikTokの下部UIバーの上、上部のプログレスインジケーターの下に収まるよう、フレーム高さの60〜70%の位置に配置します。1行が最もすっきり見え、長い文のときだけ2行にします。
YouTube Shorts(9:16縦型): YouTubeのUIはTikTokより画面領域を取らないため、少し余裕があります。白テキスト、ボックスではなくドロップシャドウ、高さ70%前後の位置。フォントは42〜56pxの範囲です。
Instagramフィード(1:1正方形): 正方形フォーマットは横方向に余裕があります。控えめなドロップシャドウ付きの白テキスト、28〜36px、最大2行、高さ80%の位置に配置します。
YouTube、LinkedIn、横型動画(16:9): 標準的な画面下三分の一の位置。黒縁取りの白テキスト、24〜32px、最大2行、1行あたり最大42文字。FFmpegのforce_styleで MarginV=30 や MarginV=40 を指定すると、テキストが最下端に張り付くのを防げます。
プラットフォーム別の正確なセーフゾーン寸法については、字幕スタイリングのベストプラクティスの記事を参照してください。
焼き込みでよくある問題と対処法
テキストがぼやける、またはギザギザに見える。 ほぼ常にforce_styleの Outline=0 が原因です。縁取りがないため、テキストが映像のノイズに溶け込みます。Outline=1 または Outline=2 を設定しましょう。
焼き込み後にキャプションがずれる。 多くはフレームレートの不一致です。SRTが30fpsのソース基準で作られているのに29.97fpsのタイムラインに焼き込んでいる、あるいはその逆のケースです。SRTを再調整するか、FFmpegコマンドで -r 30 を使って出力フレームレートをソースに合わせましょう。
特殊文字が四角(豆腐)で表示される。 デフォルトフォントにその文字種が含まれていません。アラビア語、中国語、デーヴァナーガリー、タイ語、キリル文字の場合は、force_styleで Fontname=Noto Sans を設定します。Noto Sansは、無料で入手できるフォントの中で最も広範なグリフカバレッジを持っています。ダイアクリティカルマーク付きのヨーロッパ言語なら、ほとんどのシステムフォントで問題ありません。
force_styleで色がおかしくなる。 色の値はRGBではなくBGRであることを思い出してください。BGRの &H0000FF は青ではなく赤です。本番レンダリングの前に、短いクリップでテストしましょう。
焼き込み後にファイルが大きくなる。 焼き込みは動画を再エンコードします。以前は単にストリームをコピーしていた場合、エンコードされた出力は大きくなります。Web配信向けのファイルサイズの出発点としては、-crf 20 〜 -crf 23 を使いましょう。
私見ですが:ショート動画向けSNSでは、force_style テンプレートをシェルエイリアスとして保存しておくFFmpegが、最速で再現性のあるワークフローです。コマンドを1つ実行し、エンコードを待てば、アップロード準備完了の出力が得られます。ビジュアルエディタの道筋が価値を持つのは、キャプションごとのタイミング調整が必要なときや、ASSパラメータでは表現しにくい複雑なスタイル判断がプロジェクトにあるときです。
よくある質問
焼き込み字幕とソフト字幕の違いは何ですか?
焼き込み字幕(オープンキャプション、ハードコード字幕とも呼ばれます)は、映像のピクセルに直接描画されます。視聴者はオフにしたり、スタイルを変えたり、翻訳したりできませんが、字幕トラック非対応の端末でもそのまま再生できます。ソフト字幕(クローズドキャプション)は、動画ファイルに添付される、または一緒にアップロードされる独立したテキストトラックです。視聴者は表示・非表示を切り替えられ、プラットフォームは検索用にテキストをインデックス化できます。
TikTokとInstagramは、視聴者が切り替えられるソフト字幕トラックに対応していますか?
クリエイターがアップロードした動画については、信頼できる対応とは言えません。Instagramは、視聴者がオン/オフを切り替えられる事前作成のSRTファイルを受け付けていません。TikTok Studioには自動字幕生成機能がありますが、YouTubeのCCボタンに相当する、視聴者が切り替えられるクローズドキャプショントラックはありません。両プラットフォームで確実に表示されるのは、焼き込み字幕です。
字幕を焼き込むと画質は低下しますか?
はい。焼き込みには動画全体の再エンコードが必要だからです。画質低下の程度はCRF設定によります。FFmpegはlibx264でデフォルトがCRF 23で、Web配信なら十分許容範囲です。より高画質にしたい場合は、ファイルサイズが大きくなることを承知の上でCRF 18〜20を使います。-c:a copy を指定すれば音声は再エンコードされないため、音質の劣化はありません。
動画を撮り直さずに、複数言語の字幕を焼き込むことはできますか?
はい。言語ごとに個別のレンダリングが必要ですが、動画ファイルとタイムコードは同一です。実行のたびにSRTファイルを差し替えるだけです。FFmpegの短いシェルループで自動化できます。言語ごとのSRTファイルを順に処理し、subtitlesフィルタにそれぞれを渡して、言語ごとに別ファイルを出力します。
参考資料
- FFmpeg subtitlesフィルターおよびforce_styleのドキュメント: https://ffmpeg.org/doxygen/2.8/vf__subtitles_8c_source.html
- BannerbearのFFmpeg字幕ガイド(force_style、色形式): https://www.bannerbear.com/blog/how-to-add-subtitles-to-a-video-file-using-ffmpeg/
- x264/x265向けCRFガイド: https://slhck.info/video/2017/02/24/crf-guide.html
- DaVinci Resolveの字幕焼き込み書き出し: https://caption-x.com/blog/how-to-add-captions-davinci-resolve
- Instagram Reelsのキャプションオプション(公式ヘルプ): https://help.instagram.com/225479678901832/
- LinkedInのクローズドキャプションSRTアップロード: https://www.linkedin.com/help/linkedin/answer/a552177/add-closed-captions-to-videos-on-linkedin
- OpusClipのInstagram Reelsキャプションベストプラクティス2026: https://www.opus.pro/blog/instagram-reels-caption-subtitle-best-practices
- SNSにおけるオープンキャプションとクローズドキャプション: https://www.sky-scribe.com/en/blog/closed-vs-open-captions
Try transcription free
Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.
Related Articles
How to Add Timestamps to a Transcript
Learn how to add timestamps to a transcript with an audio-to-text tool, then export timestamped SRT or VTT subtitle files for easy navigation and editing.
How to Transcribe a Conference Talk to Text
Learn how to transcribe a conference talk or keynote to text, label speakers, and export SRT, VTT, or TXT using a straightforward upload or URL workflow.