字幕のバーンインは、字幕が別の選択可能なトラックとして配信されなくなるため、メディアサーバーのトランスコーディングコストを増加させます。サーバーは各キューをビデオ画像にレンダリングし、新しいピクセルを生成するため、ソースをデコード、フィルタリング、エンコードして置換ストリームを作成しなければなりません。
これにより、通常は互換性のあるDirect PlayやDirect Streamセッションが完全なビデオトランスコーディングに変わることがあります。コストは解像度、コーデック、フレームレート、字幕フォーマット、スタイリング、ハードウェアアクセラレーション、クライアントが字幕トラックをローカルでレンダリングできたかどうかに依存します。
字幕がビデオに焼き込まれると何が変わるのか?
焼き込まれた字幕は各フレームの一部になります。もはやプレーヤーが有効化、無効化、サイズ変更、置換できる独立したテキストやビットマップストリームではありません。
別の字幕トラックにはタイミング、テキスト、スタイリング、または画像が含まれます。クライアントはフォーマットとレンダリング機能をサポートしている場合、再生時にそのトラックをデコード済みビデオと組み合わせることができます。
バーンインは合成ステップをサーバー側に移します。メディアサーバーは、圧縮されたフレームにグリフ、アウトライン、色、位置、アニメーションがすでに含まれる新しいビデオ表現を作成しなければなりません。
なぜバーンインは完全なビデオトランスコーディングを引き起こすのか?
字幕のバーンインは完全なビデオトランスコーディングを引き起こします。圧縮されたビデオパケットは通常、字幕テキストを付加して変更できないためです。字幕はデコード後、新しいエンコード前に適用されなければなりません。
リマックスは互換性のあるビデオパケットを別のコンテナにコピーでき、オーディオのトランスコーディングはビデオを変更しない場合があります。バーンインは異なり、ビデオストリームの実際の画像内容を変更します。
ソースの解像度とビットレートが許容範囲内でも、変更されたピクセルは新しい圧縮ビットストリームを必要とします。サーバーは元のエンコード済みビデオを保持しつつ、字幕が表示されるすべてのフレーム内にあると主張することはできません。
トランスコーディングパイプラインのどの段階がコストを高くするのか?
サーバーはビデオをデコード、フィルタリング、再エンコードします。字幕の解析とレンダリングは、ソースのデコードと出力のエンコードの間のフィルターステージに挿入されます。
4Kや高フレームレートでは、パイプラインはフレームごとに数百万ピクセルを処理します。フォントのシェイピング、アウトライン、影、スケーリング、色変換、トーンマッピング、リサイズは字幕オーバーレイと組み合わされることがあります。
サーバーはリアルタイムより速く動作し、出力バッファを維持しなければなりません。再生速度の0.8倍でエンコードするパイプラインは、最初の数秒が成功しても最終的には停止します。
なぜ字幕フォーマットでコストが変わるのか?
画像字幕はピクセルオーバーレイが必要です。PGSやVobSubはすでにビットマップグラフィックを含み、ASSやSSAはフォント、位置、色、効果、アニメーションスタイルを含むことができます。
シンプルなSRTやWebVTTのテキストは多くのクライアントで直接レンダリングしやすいです。複雑なASSスタイリングは対応していなかったり異なる表示になることがあり、意図した見た目を保つためにサーバーが焼き込みを行うことがあります。
画像字幕トラックは認識なしに通常のテキストに変換できません。サーバーは正しいタイミングでビットマップの字幕を合成し、映像出力に合わせてスケーリングする必要があります。
なぜハードウェアアクセラレーションでもボトルネックが残るのか?
ハードウェアアクセラレーションはパイプラインの一部のみをカバーする場合がある。デコードとエンコードはGPUやメディアエンジンで動作しても、字幕解析、フォントレンダリング、あるいは一部のフィルター処理はCPU上で行われることがあります。
フレームがハードウェアデコードからシステムメモリに移されCPUオーバーレイ処理を経て再びハードウェアエンコードに戻る際、メモリコピーや同期処理が加速効果の一部を失わせることがあります。ハードウェアサポートがないフィルターがあるとゼロコピー経路の維持は難しくなります。
結果として誤解を招く監視が起こることがあります。GPUのデコードとエンコードは動作しているのに、CPUに依存する字幕処理段階がパイプライン全体を制限している場合です。制限しているレンダラーが少数のスレッドしか使っていなくても、総CPU使用率は控えめに見えることがあります。
ホームメディアサーバーはどのようにして焼き込みコストを回避できるのか?
クライアント互換の字幕はフレームへのレンダリングを避ける。SRTやWebVTTのようなテキスト形式は、再生クライアントが対応している場合、最も簡単な選択肢であることが多いです。
ライブラリの一般的な字幕フォーマットをレンダリングできるクライアントを選ぶか、メディアの横に外部テキスト字幕を置くか、ライブラリ準備時に互換性のある字幕トラックを作成してください。頻繁に視聴するコンテンツには、事前生成されたバージョンを用意してエンコードコストを再生時間外に移すことができます。
高速なハードウェアを購入する前にセッションのトランスコード理由を確認してください。字幕処理がバッファリングのボトルネックになることがあり、同じファイルでも字幕を無効にするか別のクライアントでレンダリングするとスムーズにDirect Playできる場合があります。
| 字幕経路 | 動画処理 | 一般的なサーバー負荷 |
|---|---|---|
| クライアントレンダリングのテキスト字幕 | 元の動画は変更されません | 低負荷 |
| クライアントレンダリングの画像字幕 | 対応していれば元の動画は変更されません | クライアントの負荷は低から中程度 |
| 焼き込み済みテキストまたはASS字幕 | デコード、レンダリング、合成、エンコード | フル動画パイプライン |
| 焼き込み済みPGSまたはVobSub | ビットマップキューをデコード、スケール、合成、エンコード | フルパイプラインと画像オーバーレイの作業 |
よくある質問
すべての字幕トラックが動画のトランスコードを強制しますか?
いいえ。対応クライアントは多くのテキストおよび画像字幕フォーマットを独立してレンダリングできます。焼き込みは、クライアントが選択されたトラックをレンダリングできないか、サーバーが強制設定されている場合に発生します。
ハードウェアトランスコーディングで字幕の焼き込みをなくせますか?
いいえ。ハードウェアはデコード、スケーリング、エンコードを高速化できますが、字幕の解析やオーバーレイは処理を追加したり、ハードウェアとシステムメモリ間のフレーム転送を必要とする場合があります。
なぜSRTは直接再生できてASSは焼き込みが必要なのですか?
SRTは多くのクライアントが対応するシンプルなタイムテキストを含みます。ASSはフォント、位置、スタイル、エフェクトを必要とし、クライアントが再現できない場合があるため、サーバーが意図した結果を動画にレンダリングします。
字幕の変換は画質を下げますか?
画像字幕をテキストに変換すると、スタイルが失われたり認識エラーが含まれたりすることがあります。複雑なASSをSRTに変換すると通常は高度なフォーマットが削除されますが、元の動画は変更されずに済む場合があります。
最終的な結論
字幕の焼き込みは、単にメタデータを変更するのではなく、動画のピクセルを変更するためコストが高いです。メディアサーバーはソースをデコードし、タイミング付きキューをレンダリングし、影響を受けるすべてのフレームに合成し、新しいストリームを再生に十分な速さでエンコードしなければなりません。クライアントの互換性、よりシンプルな字幕フォーマット、完全なハードウェアフィルターサポート、事前生成されたバージョンを利用することで、軽量なストリームがリアルタイムの完全なトランスコードに変わるのを避けられます。
テック&AIハブ
もっと読む

Home Assistantにおけるランタイム状態と永続状態:再起動後も維持すべきものは?
Home Assistantはすべてのライブ値を永続化するわけではありません。設定、レジストリ、選択された復元状態、履歴、デプロイデータは、再起動時にそれぞれ異なる役割を果たします。

Home Assistantはローカルセッションとリモートセッションをどのように認証しますか?
ローカルおよびリモートのHome Assistantセッションでは、同じサーバー側のIDモデルを使用します。リモートアクセスによって変わるのは経路とTLSの境界であり、トークンフローの中核ではありません。

Recorderデータが増えると、なぜHome Assistantの履歴クエリは遅くなるのですか?
レコーダーの成長に伴い、要求された範囲に含まれる行数が増えたり、キャッシュミスが増加したり、ストレージやインデックス処理が遅くなったりすると、履歴クエリのコストが上昇する可能性があります。

