マルチユーザー向けホームストリーミングのJellyfinワークフロー設計図

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

信頼性の高いマルチユーザーJellyfin環境は、世帯を単なる「ユーザー数」ではなく、同時再生の経路の集合として捉えると設計しやすくなります。ある人はローカルの1080pファイルをダイレクト再生し、別の人はリモートで4Kトランスコードを強制し、3人目はライブラリを閲覧するだけかもしれません。この3つのセッションは、サーバーの異なる部分に負荷をかけます。

そのため、ワークフローはユーザー識別とライブラリへのアクセス権から始め、クライアントの対応能力と再生モードを確認し、最後にサーバーリソース、帯域幅ポリシー、メンテナンスのスケジュール、復旧を確認する流れにします。目標はアカウント数を最大化することではありません。世帯内で通常最も多くの利用が重なる時間帯でも、予測どおりに動作することです。

ユーザーを分け、ライブラリへのアクセス権を明示する

視聴履歴、ペアレンタルコントロール、ライブラリへのアクセス、再生権限を分ける必要がある場合は、Jellyfinでユーザーを個別に作成します。世帯で同じIDを共有するほうが簡単なのは、全員が本当に同じ表示範囲と履歴を必要とする場合だけです。

Jellyfinの現行ユーザー管理ドキュメントでは、ユーザーごとのライブラリへのアクセス、ペアレンタルコントロール、リモートアクセス権限、メディア再生権限、ストリームごとのインターネットビットレート制限に対応しています。すべてのアカウントにサーバーへの完全なアクセス権を継承させるのではなく、これらの設定を意図的に使い分けてください。

通常の再生用アカウントには管理者権限を与えないでください。映画とテレビ番組だけを見られればよいユーザーが、サーバー設定を変更したり、メディアのメタデータを削除したりできる必要はありません。

各ユーザーを再生経路に置き換える

一般的に使われる各クライアントについて、代表的なメディアがダイレクト再生、リマックス、音声変換、字幕の焼き付け、動画のトランスコードのどれになるかを記録します。この分類は、ユーザーが「ローカル」か「リモート」かよりも重要です。

Jellyfinの現行トランスコードモデルでは、クライアントの対応能力が決定的な要素になります。クライアントは対応するコーデック、解像度、ビットレート、制約を通知し、サーバーが再生出力を選択します。そのため、同じソースを視聴する家族2人でも、サーバーにかかる負荷は異なる場合があります。

頻繁に使うテレビには、対応能力の高いリビングルーム向けクライアントを優先してください。優れたクライアントなら、サーバーを変更しなくても高コストなトランスコードをダイレクト再生に変えられます。

登録アカウント数ではなく、同時実行する処理を基準にピークを設計する

最も負荷が高くなる現実的な時間帯――たとえばローカルのテレビ再生2本、リモート再生1本、子ども用プロフィールでの閲覧、スケジュールされたタスク1件――を想定し、意図的に再現します。トランスコード速度、メディアエンジンの使用状況、CPU、メモリプレッシャー、ストレージのレイテンシ、ネットワークスループットを測定してください。

同時実行するワークロード別のJellyfin容量に関するZimaSpaceの分析でも、同じ考え方が使われています。ユーザー数は、アクティブなダイレクト再生、リモート帯域幅、トランスコード、バックグラウンド処理に置き換えて初めて有用になります。

再現可能な最初の障害点より下の負荷で運用してください。4本目のトランスコードによって、それまで安定していた3本のストリームすべてが不安定になるなら、有用な結論は「4ユーザー」ではありません。「同時に4本のトランスコードを実行すると、現在のメディアエンジンまたはI/Oの余裕を使い果たす」です。

ローカルとリモートの帯域幅予算を分ける

ローカルのダイレクト再生は、通常、LANの容量とストレージのスループットに依存します。リモート再生ではISPのアップロード帯域幅が加わり、クライアントがソースのコーデックに対応していても、ビットレート変換が発生する場合があります。

リモートストリームが上り回線を使い切らないよう、Jellyfin以外の通信にインターネット帯域幅を確保します。Jellyfinのリモート利用がピークに達するたびに、家庭内のビデオ通話やバックアップが不安定になるなら、それはCPUの問題である前に、ストリーミングの上限を定めるネットワークポリシーの問題です。

リモートユーザーごとに、通常配信される最高ビットレートと、そのセッションが通常ダイレクト再生になるのかトランスコードになるのかを記録します。高ビットレートのリモートストリームは、サーバーハードウェアが限界に達するよりはるか前に、少数でもアップロード回線を圧迫する可能性があります。

負荷の高いバックグラウンド処理を視聴ピークの外にスケジュールする

ライブラリスキャン、画像抽出、プラグイン処理、データベースの最適化、バックアップ、字幕のダウンロード、トリックプレイの生成は、再生と重なる可能性があります。重要なのはタスクの種類そのものよりも、同じCPU、ストレージ、ネットワーク経路を同じ時間帯に奪い合うかどうかです。

2026年のスケジュールタスクのチューニングガイドが示すように、バックグラウンドスキャンや生成メディア関連のタスクによって再現性のあるリソースの急増が起きる場合は、最も利用が集中するストリーミング時間帯から外すべきです

ベンチマークの結果をよく見せるためだけに、メンテナンスを無効にしないでください。同時実行する必要のない処理はスケジュールを変更し、避けられないジョブは実際の容量テストに含めます。

世帯向け受け入れテストを実施する

  • 各ユーザーに意図したライブラリだけが表示されることを確認する。
  • 主要なクライアントの種類ごとに、代表的なタイトルを1本再生する。
  • デバイス名から推測せず、ダイレクト再生とトランスコードの動作を確認する。
  • 予想される最も負荷の高い同時再生の組み合わせを、数分間繰り返す。
  • 通常発生するリモート帯域幅の需要と、避けられないバックグラウンドジョブを1件追加する。
  • Jellyfinを再起動し、ユーザー、視聴状態、ライブラリ、再生が正常に復帰することを確認する。

世帯が想定されるピークを再現でき、最初に制約となるリソースを特定でき、障害後に同じサーバー状態へ復旧できたとき、マルチユーザーワークフローは完成です。これは、根拠のないユーザー数に合わせてハードウェアを購入するよりも、長く使える設計指針です。

NAS&サーバー設定

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.