ダイレクト再生は、元のメディアをストリームを変更せずに配信できるため、サーバーの計算負荷が最も少なくなります。ダイレクトストリームは、サーバーがメディアを再パッケージ化し、互換性のない音声や字幕のストリームを変換する場合があるため、サーバーの処理量が増えますが、動画自体はそのままにできます。完全トランスコードは、動画をデコードし、処理し、再度エンコードする必要があるため、最も多くの計算リソースを使用します。したがって、正しい経路とは、どのような代償を払ってでもCPU使用率が最も低くなるものではなく、クライアント、ネットワーク、選択したメディアトラックが実際に受け入れられる中で、最も負荷の軽い経路です。
ダイレクト再生が成立するのは、ファイル全体がクライアントに適合する場合だけ
ダイレクト再生は、再エンコードせずに元の動画と音声を送信できるため、まず優先すべき経路です。ストレージからの読み出し、認証、プロトコル処理、ネットワーク配信などのサーバー処理は発生しますが、高負荷な動画変換処理は行われません。
Plexでは、メディアを変換せずにクライアントで利用できる経路をダイレクト再生と定義し、ストリーミングの概要ではダイレクトストリームやトランスコードと区別しています。この元メディアの配信経路では、サーバーの処理能力ではなく、クライアントの対応能力が判断基準になります。
クライアントが動画コーデック、音声コーデック、コンテナ、プロファイル、解像度、ビットレート、字幕の動作、その他の再生条件のいずれかを受け入れられない場合、ダイレクト再生は利用できません。必要な要素のいずれかが適合しないと、サーバーはメディアを再パッケージ化するか、新しいストリームを作成する必要があります。
動画をそのまま維持できる場合、ダイレクトストリームが中間の経路になる
ダイレクトストリームは、リマックスまたはトランスマックスとも呼ばれ、動画はコピーできるものの、コンテナや別のストリームを調整する必要があるファイル向けの経路です。サーバーは互換性のあるストリームを取り出し、クライアントが受け入れられる形式に再パッケージ化します。これは動画をデコードして再エンコードするより、はるかに軽い処理です。
Embyの再生ドキュメントでは、動画トラックを変更せず、音声や字幕を変換する場合があるリアルタイムの再パッケージ化としてダイレクトストリームを説明しています。この動画コピーによるリマックス経路は重要な境界線です。「ストリーミング」と呼ばれていても、必ずしも動画のトランスコードを意味するわけではありません。
コンテナまたは音声の互換性だけが問題である場合、この経路が最適です。動画自体を変更する必要がある場合、字幕を映像に焼き込む必要がある場合、またはストリームコピーでは対応できないほど配信ビットレートや解像度を下げる必要がある場合は、利用できなくなります。
動画を作り直す必要があると、トランスコードが始まる
動画の完全トランスコードは、最も負荷の高い処理です。サーバーは元データをデコードし、拡大縮小、トーンマッピング、インターレース解除、字幕の焼き込み、その他のフレーム処理を行ったうえで、クライアント向けに新しい動画ストリームをエンコードします。音声は、その過程でコピーまたは変換されます。
Jellyfinのトランスコードに関するドキュメントでは、ハードウェアアクセラレーションとソフトウェア処理を分けて説明し、最新のGPUで対応する処理をオフロードできることを示しています。このリアルタイム変換パイプラインにより、同じ映画でも、あるクライアントではネットワーク負荷が軽く、別のクライアントでは計算負荷が高くなる理由が分かります。
互換性や帯域幅の制約によって新しい動画ストリームが実際に必要な場合に、トランスコードが適しています。クライアントが元の動画を受け入れられ、ネットワークもその動画を配信できるなら、画質設定を無理に下げることで、以前は発生していなかったサーバー負荷を生む可能性があります。
3つの経路を共通する4つのリソースで比較する
変化するサーバーリソースは、計算処理、メモリ転送、一時的なトランスコード用ストレージ、ネットワーク帯域幅です。ダイレクト再生は変換処理の計算負荷を最小限に抑えますが、ソースのビットレートがそのまま配信される場合があります。トランスコードは送信ビットレートを下げられる一方で、CPUやGPUの処理量が増加します。ダイレクトストリームはその中間に位置し、パッケージの変更は通常軽い処理ですが、音声変換を行う場合は一定の計算負荷が加わります。
| 再生経路 | 動画処理 | 一般的な計算負荷 | ネットワーク動作 | 主な失敗境界 |
|---|---|---|---|---|
| ダイレクト再生 | 元の動画と音声 | 最低 | ソースのビットレート | クライアントまたはファイルの非互換性 |
| ダイレクトストリーム | 動画はコピーし、パッケージと場合によっては音声を変更 | 低~中 | ソース動画のビットレートに近いことが多い | 動画自体の変換が必要 |
| トランスコード | 動画をデコードして再エンコード | 最高 | 低いビットレートや解像度を指定可能 | 計算処理またはアクセラレーターの処理能力 |
FFmpegのハードウェアアクセラレーションに関する概要では、動画処理向けのNVENC/NVDECやQSVなど、専用APIについて説明しています。このハードウェアオフロード層が重要になるのはトランスコードの経路だけであり、ダイレクト再生をさらに直接的にするものではありません。
1つのリソースだけで経路を順位付けしないでください。低速な上り回線を利用するリモートユーザーは、サーバーの計算能力に余裕があってもトランスコードが必要になる場合があります。一方、有線イーサネットに接続されたローカルの4Kクライアントでは、元のビットレートのままダイレクト再生する方が適しています。
字幕や音声によって、動画ファイルを変更せずに経路が変わることがある
ユーザーが別の字幕または音声トラックを選択すると、セッションが別の経路に移る場合があります。クライアントが描画できるテキスト字幕ならダイレクト再生を維持できますが、画像字幕や未対応の字幕処理では、字幕を焼き込むため動画のトランスコードが必要になることがあります。未対応のマルチチャンネル音声では、動画をコピーしたまま音声だけ変換する場合があります。
HandBrakeのパフォーマンスに関するドキュメントは、負荷の高い動画エンコード処理とその他の処理を分けて説明し、ハードウェアエンコーダーを使用していてもフィルターがボトルネックになり得ることを示しているため、ここで役立ちます。このフィルターとエンコーダーの負荷分担により、「ハードウェアトランスコードを有効にした」だけでは、すべての処理が無料になるわけではない理由が分かります。
あるタイトルが別のタイトルよりも予想外に多くのサーバーリソースを消費している場合は、CPUやGPUを比較する前に、選択されたトラックと再生理由を確認してください。表示される解像度が同じでも、処理経路はまったく異なる場合があります。
再生ダッシュボードを判断のためのツールとして使用する
CPU使用率だけで経路を推測しないでください。メディアサーバーのセッション詳細を開き、動画がダイレクト再生、コピー/リマックス、トランスコードのいずれで処理されているかを確認します。次に、音声がコピーまたは変換されているか、字幕がクライアントで描画されているか、動画に焼き込まれているかを確認してください。
メディア再生中の高CPU使用率に関するZimaSpaceのガイドでも、同じ原則が適用されています。高い使用率をハードウェア不足と判断する前に、まず処理の選択内容を特定してください。
代表的なローカルセッションを1つ、リモートまたは帯域幅が制限されたセッションを1つ、字幕を多用するセッションを1つ実行してください。ダッシュボードですでにダイレクト再生と表示されていて、それでも再生がバッファリングする場合は、トランスコード性能の比較をやめ、ストレージ、配信経路、またはクライアントを確認してください。
配信条件を満たす中で、最も負荷の軽い経路を選ぶ
クライアントがメディアファイル全体に対応し、ネットワークがそのビットレートを処理できる場合は、ダイレクト再生を優先してください。元のデータを維持し、他のユーザーのためにサーバー容量を最大限残せます。
動画の互換性がすでに解決していて、コンテナ、音声、またはパッケージだけを調整する必要がある場合は、ダイレクトストリームを使用してください。互換性、帯域幅、解像度、HDR/SDR変換、字幕の焼き込み、その他の実際の配信条件によって動画自体の変更が必要な場合にのみ、トランスコードを使用します。
すべての状況で優れた経路はありません。ダイレクト再生は計算負荷を最小限に抑え、ダイレクトストリームはパッケージの不一致を低コストで解決し、トランスコードはサーバーリソースと引き換えに互換性とビットレート制御を提供します。適切なメディアサーバー設計とは、前者2つを最大限活用しながら、3つ目を避けられないセッションに対応できる十分なトランスコード容量を確保することです。
製品比較
もっと読む

PlexにはDockerと仮想マシンのどちらが適している?導入方法を比較
共有される運用要件に基づく、Docker、仮想マシン、またはVM内のDockerに関するPlex導入方式の条件付き判定。

Plex向け8GB・16GB・32GB RAM比較:あなたのワークロードに合う容量はどれ?
軽量なPlexには8GB、複数ユーザーでアプリを共有する場合は16GB、VMやRAM容量を制限したワークスペースには32GBを選びましょう。ただし、測定結果で必要性が裏付けられる場合に限ります。

専用ハードウェアアクセラレーションはPlexに大きな優位性をもたらすのか?
対応している繰り返しトランスコードではハードウェアアクセラレーションが有利ですが、ダイレクト再生、まれな変換、未対応の処理段階ではCPUのみでも問題ありません。

