ブログに戻る

ハードサブとソフトサブ:実際に選ぶべきはどちらか

ハードサブとソフトサブの違いを解説。一方は映像のピクセルに焼き込まれ二度と外せず、もう一方は独立したトラックとして後から切り替えられます。YouTubeやTikTokなど主要プラットフォームが実際にどちらを受け付けるのかも紹介します。

2026年9月20日
Sablate Team

ハードサブは映像のピクセルに描き込まれ、後から切ることができません。ソフトサブはプレイヤーが上から描画する独立したトラックで、視聴者は非表示にしたり、スタイルを変えたり、別の言語に切り替えたりできます。配信先が字幕ファイルを読み込まないならハードサブを選び、それ以外のときはソフトサブを選んでください。

これは品質の問題ではなく配信の問題です。字幕ファイルを拒む配信先は、ソーシャルプラットフォームのせいで思い込みがちなほど多くはありません。判断を誤れば、動画全体を再エンコードする代償を払うことになります。

ハードサブとソフトサブを並べて比較する

項目ハードサブソフトサブ
テキストの置き場所すべてのフレームのピクセルの中独立したトラックまたはファイルの中
視聴者がオフにできるかできないできる
視聴者が言語を切り替えられるかできない、言語ごとに1本の動画が必要できる、トラックがあれば
スタイルが保たれるか常に、レンダリングしたとおりにプレイヤーが対応している場合のみ
再エンコードが必要か必要不要
書き出し後に修正できるかできない、マスターから再レンダリングできる、テキストファイルを編集するだけ
すべてのプレイヤーで動くか動くプレイヤーによる
機械可読でインデックス可能か不可能可能
配布する内容言語ごとに1本の動画1本の動画と小さなテキストファイル

たいていの議論に決着をつけるのは7行目です。ハードサブには失敗の余地がありません — 動画さえ再生されれば、テキストは選んだとおりのサイズと色でそこに存在します。10年前のスマートTVでも、ミュートの自動再生フィードでも、プレビューのサムネイルでも同じです。この表の他のすべての行はソフトサブに有利ですが、この1行だけのために、ハードサブはなくならずに残っているのです。

一方は再エンコードが必要で、もう一方は不要な理由

フレームにテキストを描き込むということは、フレームをデコードし、その上に描き、再びエンコードするということです。最後のステップは避けられません — 変化したピクセルは書き出し直す必要があり、しかも動画エンコーダーは非可逆だからです。

ソフト字幕はエンコーダーに何も求めません。muxingは既存の映像ストリームと音声ストリームをそのままコピーし、その横に3つ目のストリームを追加するだけです:

ffmpeg -i input.mp4 -i subs.srt -c copy output.mkv

焼き込みはすべてのフレームに手を加える必要があり、映像ストリームには-c copyという近道が使えません:

ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4

最初のコマンドは、ファイルをディスクから読み込むのとほぼ同じ時間で終わります。2つ目のコマンドは動画全体をエンコーダーに通すため、2時間の録画であれば長い待ち時間と、測定可能な画質コストが発生します。このコストは正体不明のものではなく、コントロール可能なものです — 実体はCRFの設定次第であり、動画に字幕を焼き込む方法では劣化を目に見えないレベルに抑える設定を解説しています。

この非対称性は、複数の言語が関わると一段と大きくなります。8言語をソフト字幕にすれば、8個の小さなテキストファイル、あるいは1本の.mkvの中の8トラックで済みます。8言語を焼き込めば、8回分のフルエンコード、8個の保存ファイル、8回のアップロードが必要になります — だからこそ多言語配信では、たいていの言語はソフトトラックにし、焼き込みは最も重要な1〜2言語だけに絞るのが通例です。

ソフトサブは本当に視聴者に届くのか?

きれいな答えが崩れるのはここからです。はっきり言っておく価値があります — 正しい字幕ファイルができてから視聴者がそれを読むまでの間には、5つのことがうまくいかなくなる可能性があるからです。

  1. ファイルが動画から切り離されてしまう。 動画とは別に置く.srtは2つ目の添付ファイルとして扱われ、チャットアプリや共有ドライブ、再アップロードの過程で2つ目の添付ファイルは失われがちです。コンテナにmuxされたトラックには、この問題がありません。
  2. MP4は字幕にほとんど対応していない。 このコンテナは字幕をmov_textとして保持しますが、これはフォントも色も位置指定も持たないプレーンなタイムテキスト形式です。Appleのプレイヤーは読み込めますが、それ以外の多くのプレイヤーは黙ってこのトラックを無視します。ソフト字幕を入れた.mp4が何も表示しない、最もよくある原因がこれです。
  3. スタイルはレンダラー次第。 .assトラックは輪郭線、位置指定、フォント、カラオケタイミングを保持しています。mpv、VLC、Plexはそのすべてを描画しますが、安価なTVアプリはこれを捨ててプレーンな白文字を表示します。形式の比較記事では、どの変換でどの機能が残るのかを解説しています。
  4. プラットフォームはアップロードされたものを再エンコードする。 ソーシャルプラットフォームはファイルを分解し、自社の仕様に合わせて再構築します。字幕ストリームを含め、想定されていなかったものはすべて、その再構築を生き残れません。
  5. ミュート自動再生。 フィードは動画を無音・キャプションオフの状態で自動再生するため、視聴者が自分でオンにしなければならない字幕は、ほとんどの視聴者が一度も目にしない字幕になります。

だからといって、ソフト字幕を既定の選択肢にすることが間違っているわけではありません。ただこれは、「自分のVLCでは動く」ということと「視聴者に届く」ということが別の話である理由を説明しています。

どのプラットフォームが字幕ファイルを受け付けるのか?

各プラットフォーム自身のドキュメントを2026年9月時点で確認した結果です:

配信先字幕ファイルを受け付けるか選ぶべき方式
YouTube対応、.srt.vtt.ttmlなどソフトサブ
Vimeo対応、.srt.vttソフトサブ
Facebook対応、ファイル名にロケールを含む.srtソフトサブ
LinkedIn対応、.srtソフトサブ
TikTok非対応ハードサブ
Instagram Reels非対応ハードサブ
X非対応ハードサブ
自分のサイト対応、<track>要素内の.vttソフトサブ
VLC、mpv、Plex、Jellyfin対応、.srtまたは.ass、別ファイルまたは.mkvソフトサブ

3つの行には注意が必要です。YouTubeが対応する形式は約20種類に及びますが、その中に.assは含まれていません。そのため.assファイルのスタイルは、アップロードした瞬間に失われます。Facebookは、video.en_US.srtという正確な形式でロケールを含まないファイル名のキャプションファイルを拒否します。そしてYouTubeはアップロード用コンテナとして.mkvをそもそもリストに含めていないため、複数トラックの.mkvはプラットフォーム向けではなくプレイヤー向けの配信形式ということになります。

「非対応」の3行には補足が必要です。TikTok、Instagram、Xはいずれもアプリ内でキャプションを自動生成しますが、これはあなたの字幕ファイルを受け付けることとは違います。手に入るのは、それぞれのプラットフォームによる文字起こしとスタイル、改行の区切り、そして1行をどれくらいの速さで読ませるかという判断であり、そのどれ一つとしてあなたがコントロールすることはできません。

ハードサブ・ソフトサブ・両方、どれを選ぶべきか

「YouTubeやVimeoにアップロードする」 ソフトサブです。言語ごとに.srt.vttを1つ。テキストはインデックスされ、視聴者は自分で言語を切り替えられ、誤字は動画に触れることなく10秒で直せます。

「TikTok、Reels、Xに投稿する」 ハードサブです。それ以外は何も生き残らないからです。リビングのテレビ向けではなく、親指でスクロールされるミュートの縦型フィード向けにスタイルを設定してください。

「確認用にクライアントへカットを送る」 ハードサブです。送っているのはマスターではなく、レビュアーが何をダブルクリックして開こうと、最初に開いた瞬間に正しく見えなければならないものだからです。

「映画や講座ライブラリ、アーカイブを納品する」 .mkvによるソフトサブで、言語ごとに1トラック、フォントも添付します。すべての言語を1つのファイルに収めながら、視聴者に選択を委ねられる唯一の配信方法です。

「同じ動画を5言語で公開する」 両方です。5言語すべてをソフトトラックにし、視聴者数が最も多い1〜2言語だけを焼き込みコピーにします。

「どこに配信されるかまだわからない」 字幕なしのクリーンなマスターと字幕ファイルを手元に残し、必要になった時点でコピーを焼き込んでください。この順序を逆にすることが、半日を無駄にする失敗です — ソフトサブはいつでも後から焼き込めますが、ハードサブは二度と元に戻せません。

1つの文字起こしから両方を作る

実務上の問題は、どちらが優れているかではありません。同じ作業から両方を取り出すにはどうすればいいか、です — 文字起こしもタイミングもスタイルもどちらの方式でも同じであり、違うのは最終的な書き出しだけだからです。

Sablateはまさにこの考え方で作られています。1つのジョブは1回の文字起こしと、言語ごとの翻訳レイヤーを持ち、各レイヤーは独自のスタイルと独自の文字体系フォントを持ちます。分岐が生まれるのは書き出しの段階です: 字幕ファイルを読み込むプラットフォームにはファイルを、読み込まないプラットフォームには焼き込み.mp4を、ローカル再生には言語ごとにトラックを収めた1本の.mkvを、それぞれ選べます。この3つの間で文字起こしが2度行われることはなく、動画がパソコンの外に出ることもありません。無料プランは10分までの動画、月3ジョブ、小さなコーナーマーク付きの焼き込み.mp4まで対応しています。.ass書き出しと複数トラックの.mkvはPro($29の一度きりの支払い)の機能で、詳細は料金ページに掲載しています。

とはいえ、1つの言語の1本のファイルだけが対象であれば、正直なところアプリケーションすら必要ないかもしれません:

作業FFmpegとmkvmergeSubtitle EditSablate
字幕ファイルを映像に焼き込むできるできるできる
字幕トラックを.mkvにmuxするできるできないできる、Pro
音声を字幕ファイルに文字起こしするできないできるできる
1つの文字起こしから複数の言語レイヤーできない部分的にできるできる
言語ごとのスタイルと文字体系フォントできないできないできる
価格無料無料$29、買い切り

FFmpegmkvmergeは無料でmuxと焼き込みができ、Subtitle EditはSablateよりも多くの字幕形式を読み込めます。目の前の作業が1言語だけの、形式をいじるような作業であれば、これらのほうが優れたツールであり、しかも無料です。

まとめ

既定はソフトサブ、配信先に選択肢がない場合だけハードサブ、そしてどちらの場合もクリーンなマスターは必ず残しておく。字幕づくりの中で焼き込みだけが唯一元に戻せない工程なので、それを最後の工程にし、プロジェクト単位ではなく配信先単位で判断してください。複数言語が絡む場合は、まずソフトトラックを一式作り、焼き込みコピーはそれぞれを縦型クロップやソーシャル向けカットダウンと同じ、書き出しのターゲットの1つとして扱ってください。