Pixel Streaming リファレンス

Pixel Streaming システムのコンポーネントでサポートされているブラウザ、ネットワーキング ポート、設定オプションについて説明します。

Windows
MacOS
Linux

このページでは、Pixel Streaming システムの各部で公開されているコマンドライン パラメータ、設定、オプションについて説明します。

サポートされるグラフィック ハードウェア

Pixel Streaming プラグインを使う Unreal Engine アプリケーションを実行するコンピュータでは、ハードウェアアクセラレート ビデオ エンコーディング (NVENC) をサポートする NVIDIA GPU ハードウェアを使用する必要があります。NVIDIA 社の「matrix of supported devices (サポート デバイスのマトリクス)」を参照してください。

Pixel Streaming プラグインを使用した際に、エラー メッセージ「Failed to load NvEncode dll」 (NvEncode dll をロードできない) が表示された場合は、使用している GPU が NVENC をサポートしていない可能性があります。

サポートされるオペレーティング システム

Pixel Streaming プラグイン、WebRTC Proxy サーバー、Signalling and Web サーバーは、Windows 8 および Windows 10 でテスト済みです。

Windows 7 など他のオペレーティング システムではテストされていません。

サポートされるクライアント ブラウザ

Pixel Streaming の再生は、WebRTC プロトコルをサポートする最新のブラウザで動作します。例えば、次のブラウザの最新バージョン (2、3 のバージョン) はテスト済みで、追加設定なしで動作することが確認されています。

  • Google Chrome (デスクトップ版とモバイル版)

  • Mozilla Firefox (デスクトップ版とモバイル版)

  • Apple Safari (デスクトップ版とモバイル版)

Microsoft Edge や Opera など他のブラウザは、アドオンやプラグインが必要になることがあり、さらにシステムによっては動作しない可能性があります。

デフォルトのネットワーク ポート

Pixel Streaming システムの各コンポーネントは、以下に指定したデフォルト ポートを使用して通信します。これらのコンポーネントが動作するホストで、それぞれのポートがオープンであることを確認する必要があります。

コンポーネント

ポート

Unreal Engine and WebRTC Proxy Server host

  • 8124 - アプリケーションと WebRTC Proxy サーバー間のすべての通信用。 この値を変更するには、パッケージ化された Unreal Engine アプリケーションを起動するときの -PixelStreamingPort コマンドライン パラメータ**と、WebRTC Proxy サーバーに対して -UE4Port** パラメータの**両方**を設定します。

Signaling Server host

  • 80 - クライアントから受け取るすべての HTTP リクエスト用。 この値を変更するには、Signaling サーバーに対して --httpPort パラメータを使用します。

  • 443 - クライアントから受け取るすべての HTTPS リクエスト用 (Signaling サーバーが HTTPS モードで動作している場合)。 この値を変更するには、Signaling サーバーに対して --httpsPort パラメータを使用します。

  • 8888 - WebRTC Proxy サーバーから受け取るすべての接続リクエスト用。 この値を変更するには、Signaling サーバーに対して --proxyPort パラメータ**と、WebRTC Proxy サーバーに対して -Cirrus** パラメータの**両方**を設定します。

Matchmaker Server host

  • 90 - クライアントから受け取るすべての HTTP リクエスト用。 この値を変更するには、Matchmaker サーバーに対して --httpPort パラメータを使用します。

  • 9999 - シグナリング サーバーにより送信されるすべてのメッセージ用。 この値を変更するには、Matchmaker サーバーに対して、--matchmakerPort パラメータ**と、Signaling サーバーに対して --matchmakerPort** パラメータの**両方**を設定します。

Unreal Engine コンソール コマンド

Encoder コマンドでは、Pixel Streaming プラグインで Unreal Engine からのレンダリングされたフレームをビデオ イメージにエンコードする方法をコントロールします。Streamer コマンドでは、Pixel Streaming プラグインで、これらのイメージを WebRTC Proxy を通じて送信する方法をコントロールします。

コマンド

説明

Encoder.AverageBitrate

エンコーダのターゲット ビットレート (Mbps 単位、帯域幅制限で低下する前) を判断します。

Encoder.MaxBitrate

許容される最大ビットレート (Mbps 単位、WebRTC Proxy サーバーで報告された値を無視)。

Encoder.TargetSize

エンコーダのターゲット解像度サイズ (<width>x<height> の形式)。 ストリームでこのカスタム サイズを使用するためには、さらに Encoder.UseBackBufferSIze を「false」に設定します。

Encoder.UseBackBufferSize

Encoder.TargetSize で設定されたカスタム サイズではなく、バック バッファ サイズ (レンダリング ゲーム ビューポートのサイズ) を使用するようにエンコーダを設定します。

Encoder.SaveVideoToFile

Unreal Engine アプリケーションの作業ディレクトリにある「EncodedVideoFile.h264」というファイルにエンコードされたビデオが保存されます。 Unreal Engine の開発用ビルドのみで機能します。シッピング ビルドでは使用できません。

Streamer.PrioritiseQuality

低ビットレートの接続に対して自動的に Engine のフレームレートを削減します。ネットワーク状態が良好ではないとき、各ビデオ フレームの見かけの画質を高く維持するため、フレーム/秒を代わりに落とします (レイテンシーを増加)。

Streamer.LowBitrate

ネットワーク状態に適した品質で、ストリーマーで許容される最小ビットレート (Kbps 単位)。

Streamer.HighBitrate

ネットワーク状態に適した品質で、ストリーマーで許容される最大ビットレート (Kbps 単位)。

Streamer.MinFPS

ネットワーク状態に適した品質で、ストリーマーで許容される最小フレーム数 (毎秒)。

Streamer.BitrateReduction

WebRTC からジッターに対応するために報告されたビットレートをストリーマーでどれだけ削減するのかを決定します (% で表現)。

Unreal Engine コマンドライン パラメータ

Unreal Engine アプリケーションを起動する際に、コマンドラインで以下のプロパティを設定します。

パラメータ

説明

-AllowPixelStreamingCommands

プレイヤー Web ページが emitCommand() 関数を使用して、Unreal Engine でリモートにコンソール コマンドを実行するかどうかを指定します。セキュリティ上の問題になる可能性があるので、有効にする場合は注意してください。

-AudioMixer

Unreal Engine でオーディオにソフトウェア ミキシングを使用するようにします。したがって Pixel Streaming プラグインでオーディオをキャプチャできます。 このパラメータはアプリケーションからオーディオをキャプチャし、ブラウザにストリームするために必要です。

-PixelStreamingIP=<value>

Unreal Engine が WebRTC Proxy サーバーからの受信接続をリッスンする IP アドレスを指定します。 デフォルト値は 0.0.0.0 で、すべての内部 IP アドレス (一般にはローカル マシンの独自 IP アドレスと 127.0.0.1) を含みます。

-PixelStreamingPort=<value>

Unreal Engine と WebRTC Proxy サーバー間の通信で使用するポート番号。 デフォルト値は 8124 です。

-PixelStreamingKeyFilter="<value>"

WebRTC Proxy が入力から除外するキーを記載した、キーボードのキーのコンマ区切りリストです。この入力は、WebRTC Proxy によりプレイヤー Web ページから Unreal Engine に中継されます。ユーザーがブラウザでこれらのキーのいずれかを押した場合、そのイベントは Unreal Engine の入力コントローラーに中継されません。 例えば、-PixelStreamingKeyFilter="F1..F12,W,A,S,D" は 12 個のファンクション キーすべてと移動キーを除外します。

-RenderOffScreen

Unreal Engine アプリケーションをヘッドレス (ローカル コンピュータで表示されるレンダリングが何もない状態) で実行します。アプリケーションはウィンドウを表示せず、全画面でのレンダリングもありません。 このパラメータを -ForceRes とともに使用すると、Unreal Engine はメイン ディスプレイの解像度を基に解像度を自動的に調整できなくなります。 このパラメータを省略すると、Unreal Engine アプリケーションのウィンドウは通常どおりレンダリングされます。このアプリケーション ウィンドウが最小化されると、Pixel Streaming ビデオと入力の取り込みは停止します。したがって、このパラメータを常に含めることをお勧めします。ただし、同じコンピュータで実行時に、Unreal Engine アプリケーションからのレンダリング出力をローカルで確認する必要がある場合は除きます。

-NvEncFrameRateNum=<value>

指定した場合、デフォルトのエンコーダ フレーム レートをオーバーライドします。 デフォルト値は t.MaxFPS に適合するように設定されます。

-NvEncMaxEncodeWidth=<value>

エンコーダによるエンコードが可能な、フレームの最大幅。 デフォルト値は 3840 です。

-NvEncMaxEncodeHeight=<value>

エンコーダによるエンコードが可能な、フレームの最大高さ。 デフォルト値は 2160 です。

-NvEncAverageBitRate=<value>

指定した場合、エンコーダのデフォルト平均ビットレートをオーバーライドします。

-NvEncH264ConfigLevel=<value>

このパラメータを NV_ENC_LEVEL_H264_52 に設定して、エンコーダで H.264 level 5.2 を使用します。設定しない場合、エンコーダは H.264 level 5.1 を使用します。 これによりエンコーダの機能が強化されます。強化された機能は、3840x2160 (4K) など高解像度でのビデオの作成に対応するために必要となる場合があります。H.264 レベルの詳細については、このページを参照してください。 高出力解像度での作業時に Unreal Engine アプリケーションで「Failed to initialize NvEncoder」 (NvEncoder を初期化できない) と表示される場合は、必要に応じてこのオプションを有効にしてください。

Signaling サーバーのコンフィギュレーション パラメータ

これらのパラメータを設定するには 2 つの方法があります。

  • run.bat または node cirrus.js を実行して Signaling and Web サーバーを起動する際は、コマンドラインで設定します。この場合、各パラメータにプレフィックス -- (2 つのダッシュ) を付け、スペースを入力してから設定する値を続けます。例:--httpPort 81

  • コンフィギュレーション ファイルで設定します。デフォルトでは、Signaling and Web サーバー (cirrus.js) は同じフォルダで、「config.json」というファイルを探します。この場合、ファイルで定義された JSON オブジェクトのキーと値のペアとして、必要な各パラメータと値を設定します。Signaling and Web サーバーを少なくとも 1 回起動したことがある場合は、例の「Engine/Source/Programs/PixelStreaming/WebServers/SignallingWebServer/config.json」ファイルにリストされているパラメータを確認します。

パラメータ

説明

publicIp

Signaling and Web サーバーが動作しているコンピュータのパブリック IP。

httpPort

クライアント ブラウザとの HTTP 接続に Signaling and Web サーバーが使用するポート番号。

proxyPort

Signaling and Web サーバーが WebRTC Proxy サーバーからの受信接続をリッスンするポート番号。

peerConnectionOptions

WebRTC Proxy サーバーとブラウザが、それぞれの外部 IP アドレスを把握する必要がある場合にクエリするための STUN および TURN サーバーのホスト名または IP アドレスを指定します。 STUN および TURN サーバーの詳細については、「ホスティングおよびネットワーキング ガイド」を参照してください。 このパラメータは、問い合わせる順にサーバーの URL をリストした文字列であることが必要です。次の形式で作成する必要があります。 "{ \"iceServers\": [{\"urls\": [<url1>,<url2>,<url3>,...]}] }"
例: "{ \"iceServers\": [{\"urls\": [\"stun:34.250.222.95:19302\"]}] }"
または "{ \"iceServers\": [{\"urls\": [\"stun:34.250.222.95:19302\",\"turn:34.250.222.95:19312\"]}] }"
Unreal Engine に付属して出荷される TURN サーバーの実装に対しては、次の形式でユーザー名とパスワードを提供する必要があります。 "{\"iceServers\":[{\"urls\":[\"stun: 34.250.222.95:19302\",\"turn: 34.250.222.95:19312\"],\"username\":\"<TURN_Username>\",\"credential\":\"<TURN_Password>\"}]}"
他の STUN および TURN 実装では、認証情報に対して要件が異なる場合があります。

JSON コンフィギュレーション ファイルでパラメータを指定する場合でも、この値は文字列形式であることが必要です。常に二重引用符 (") で囲み、前に示したように、文字列内ではバックスラッシュ () を使用して引用符をエスケープします。

HomepageFile

特定の URL をリクエストしていないクライアント ブラウザが接続したときに、サーバーが提供するデフォルト ページのファイル名。 デフォルト値は player.htm です。

AdditionalRoutes

Signaling and Web サーバーがサービスを提供する追加フォルダを指定します。 このパラメータは JSON オブジェクトである必要があります。つまり、コマンドラインではなく、JSON コンフィギュレーション ファイルでのみ提供できます。 また、このオブジェクトでは、各キーが URL の一部であり、各キーの値がサーバーがリクエスト元のクライアントに提供するローカル パスである必要があります。例えば、 "AdditionalRoutes" = { "/myfolder", "C:\some_local_path" }
を設定した場合、クライアントが http://server-name/myfolder/index.html をリクエストすると、サーバーは「C:\some_local_path\index.html」という名前のファイルを提供します。

LogToFile

Signaling and Web サーバーがログ メッセージを「./logs」フォルダのファイルに書き込むかどうかを指定します。 デフォルト値は「true」です。

UseHttps

このパラメータを「true」に設定すると、Signaling サーバーは HTTPS 接続のみを httpsPort で受け入れるようになります。 「client-key.pem」および「client-cert.pem」ファイルを Signaling and Web サーバーの「root」フォルダにある「certificates」フォルダに配置する必要もあります。

httpsPort

HTTPS 接続をリッスンするポート番号。UseHttps が有効な場合にのみ使用されます。 デフォルト値は 443 です。

UseMatchmaker

クライアント ブラウザが、その時点で使用されていない Signaling サーバーと WebRTC Proxy サーバーを検出できるように、Signaling and Web サーバーが現在のステータスを Matchmaker サーバーに送信するかどうかを指定します。

matchmakerAddress

Signaling and Web サーバーが問い合わせる Matchmaker サーバーの IP アドレス。

matchmakerPort

Signaling and Web サーバーからの受信メッセージを Matchmaker サーバーがリッスンするポート番号。

configFile

Signaling サーバーが前に示した各プロパティの値を取得するために使用する、コンフィギュレーション ファイルのパスとファイル名を指定します。コマンドラインでのみ設定できます。

WebRTC Proxy サーバー コマンドライン パラメータ

WebRTC Proxy サーバーの動作を設定するには、「WebRTCProxy_x64_<build>.exe」ファイルを実行するときに、コマンドラインで以下のパラメータを指定します。

前の Signaling and Web サーバーや以下の Matchmaker サーバーの場合と異なり、同じフォルダの「.bat」ファイルの最後に追加したときは、これらのパラメータは機能しないことに注意してください。

パラメータ

説明

-Cirrus=<value>

WebRTC Proxy サーバーが接続する Signaling サーバーの IP アドレス。 デフォルト値は 127.0.0.1:8888 です。

-UE4Port=<value>

ローカル ホストで動作している Unreal Engine アプリケーションとの通信用に WebRTC Proxy サーバーが接続するポート番号。 デフォルト値は 8124 です。

-PlanB

WebRTC Proxy サーバーを PlanB SDP セマンティクスを使用するように切り替えます。

-LocalTime

UTC ではなくローカル タイムを使用してログ メッセージにタイムスタンプを記録します。

Matchmaker サーバー コマンドライン パラメータ

Matchmaker サーバーを「run.bat」ファイルを実行して起動するとき、または「node.exe matchmaker.js」を実行して起動するときに、コマンドラインで以下のパラメータを指定します。

パラメータ

説明

--httpPort <value>

クライアントからの HTTP接続を Matchmaker がリッスンするポート番号を設定します。 デフォルト値は 90 です。

--matchmakerPort <value>

Cirrus Signaling サーバーからの受信メッセージを Matchmaker がリッスンするポート番号を設定します。 デフォルト値は 9999 です。

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信