Moonshine: Linux用ヘッドレス・ゲームストリーミング・サーバー
Moonshine: Linux用ヘッドレス・ゲームストリーミング・サーバー
MoonshineはLinux上でヘッドレスかつ分離されたゲームストリーミングを可能にします
MoonshineはRustで書かれたヘッドレス・ストリーミング・サーバーであり、Linux PCからMoonlightクライアントを実行しているあらゆるデバイスへゲームをストリーミングすることを可能にします。物理ディスプレイをミラーリングする従来のストリーミング・ソリューションとは異なり、Moonshineは各ストリーミング・セッションごとに独自の分離されたコンポジット(compositor)を作成します。つまり、ゲームをリモートでストリーミングしている間も、ホストPCを他のタスクに完全に活用し続けることができます。
主な技術的特徴
Moonshineは、物理モニターやHDMIダミー・プラグを必要としない、軽量なLinux専用の実装に焦点を当てることで、他のストリーミング・ホストと差別化を図っています。
分離されたストリーミング・セッション
各ストリームは、ホストのデスクトップ環境から完全に分離された独自のコンポジット内で実行されます。このアーキテクチャにより、ホストマシンを1人が使用している間に、別の人が同じハードウェアからゲームをストリーミングできる、マルチシート(multi-seat)のような機能が実現します。
ヘッドレス動作と仮想ディスプレイ
Moonshineは独自のコンポジットを制御するため、物理モニターやダミー・プラグを必要とせずに、任意の解像度やリフレッシュレートで仮想ディスプレイを生成できます。これにより、ホストに接続されている物理モニターがHDRをサポートしていない場合でも、標準でHDRサポート(10-bit)が可能です。
ハードウェア・エンコーディングとパフォーマンス
Moonshineは、低遅延のパフォーマンスを実現するためにVulkanビデオ・エンコーディングを利用します。以下の機能をサポートしています:
- Codecs: H.264, H.265, および AV1(AV1は現在実験的であり、NVIDIA GPUではドライバー・バージョン595.44.3.0まで問題が発生する可能性があります)。
- Audio: ステレオおよびサラウンド・サウンド(5.1/7.1)をサポートする低遅延のOpusエンコーディング。
- Input: マウス、キーボード、ゲームパッドの完全なサポート。これには、ハプティクス、タッチパッド、およびモーション・コントロールが含まれます。
システム要件とインストール
Moonshineは、Vulkanエンコーディングをサポートするための特定のハードウェア要件を備えた、モダンなLinux環境向けに設計されています。
要件
- OS: Linux(Arch Linuxでテスト済み)。
- Init System: systemd(プロセス管理に必要)。
- GPU: Vulkanビデオ・エンコーディングをサポートするGPU(NVIDIA RTX, AMD RDNA2+, または Intel Arc)。
- Client: Moonlight v6.0.0 以上。
Arch Linuxへのインストール
ユーザーはAUR経由でMoonshineをインストールできます:
yay -S moonshine
サーバーがアクティブなユーザー・ログインなしでアプリケーションを起動できるようにするために、ユーザーはlingeringを有効にする必要があります:
sudo loginctl enable-linger $USER
sudo systemctl enable --now moonshine@$USER
設定とアプリケーション管理
Moonshineは、セットアップのために config.toml ファイルを使用します。手動設定を減らすために、自動スキャナーが含まれています。
アプリケーションの追加
アプリケーションは、実行する command を含む設定ファイル内で定義されます。Moonshineは pre_command および post_command 配列もサポートしており、ユーザーがセッションの前後に環境の変化(例:例:競合するサービスを停止したり、GPUの電力状態を変更したりすること)をスクリプト化することを可能にします。
アプリケーション・スキャナー
セットアップを簡文化するために、Moonshineは組み込みのスキャナーを提供しています:
- Steam Scanner: インストールされているSteamゲームを自動的に検出し、Big Pictureモードで起動します。
- Desktop Scanner: 標準的なシステムおよびユーザー・ディレクトリ内の
.desktopファイルを介してアプリケーションを検索します。
Sunshineと他のツールとの比較
SunshineはオープンソースのGameStreamホストの業界標準ですが、Moonshineはヘッドレス・サーバーに対して特定のアーキテクチャ上の利点を提供します。
Moonshine vs. Sunshine
Sunshineは、より広範な機能セットを持つクロスプラットフォーム・ツールです。しかし、Sunshineは通常、既存のデスクトップ・セッションをミラーリングします。Moonshineの分離されたコンポジットの使用は、実行中のデスクトップ環境に依存しないことを意味し、ヘッドレスLinuxサーバーにとってより優れた選択肢となります。
エコシステム・コンテキスト
コミュニティの議論では、ApolloやArtemisのようなフォーク、および Games on Whalesのようなプロジェクトを含む、ストリーミング・ツールの複雑な状況が強調されています。Moonshineの作成者が議論の中で述べているように:
"その核心はSunshineに似ていますが、1つの重要な違いがあります。Moonshineは独自のコンポジットを作成し、既存のデスクトップ環境に依存しません。"
セキュリティ警告
Moonshineは、パブリック・ネットワークでの使用を目的として設計されていません。GameStreamプロトコルは、アプリケーション・レベルでの完全な暗号化を提供しません。インターネット経由でストリーミングを行うユーザーは、Tailscale, WireGuard, または ZeroTier のようなセキュア・トンネルを使用し、Moonshineのポートをインターネットに直接公開すべきではありません。