Pixel Streaming リファレンス

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

Windows
MacOS
Linux

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

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

Pixel Streaming プラグインを使う Unreal Engine アプリケーションを実行するコンピュータでは、ハードウェアアクセラレート ビデオ エンコーディング (NVENC) をサポートする NVIDIA GPU ハードウェアを使用する必要があります。

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

コンポーネント

ポート

Signaling Server host

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

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

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

Matchmaker Server host

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

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

Unreal Engine コンソール コマンド

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

コマンド

説明

Encoder.MaxBitrate

許容される最大ビットレート

Encoder.TargetSize

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

Encoder.UseBackBufferSize

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

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

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

パラメータ

説明

-AllowPixelStreamingCommands

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

-AudioMixer

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

-PixelStreamingIP=<value>

必須。

Signaling and Web サーバーを実行するコンピュータの IP アドレスまたはドメイン名を指定します。

-PixelStreamingPort=<value>

必須。

*Unreal Engine アプリケーションから受信する通信を Signaling and Web Server がリッスンするポートを指定します。
Signaling and Web サーバーはデフォルト値 `8888` を使用します。

-PixelStreamingKeyFilter="<value>"

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

-PixelStreamingReceiveStringMaxLength

Unreal Engine アプリケーションが Signaling and Web サーバーから受け取るメッセージの最大長をバイトで設定します。
デフォルト値は 1024 です。

-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>

H.264 の圧縮レベルを 5.2 または 5.1 に定義します。このパラメータを設定しないと、エンコーダは 3840x2160 (4K) などの解像度でのエンコードが可能なレベル 5.2 を使用します。 低めの解像度でエンコードを行う場合は、レベル 5.1 に切り替えて帯域幅を節約できる場合があります。切り替える方法は、このパラメータを NV_ENC_LEVEL_H264_51 に設定します。
H.264 レベルの詳細については、こちら を参照してください。
ご使用になっている Unreal Engine アプリケーションから「Failed to initialize NvEncoder (NvEncoder の初期化に失敗)」と報告され、高い出力解像度を使用している場合、このオプションを削除してレベル 5.2 へ戻る必要があるかもしれません。

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 サーバーが使用するポート番号。

streamerPort

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

peerConnectionOptions

Unreal Engine アプリケーションとブラウザが、それぞれの外部 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 サーバーと Unreal Engine アプリケーションを検出できるように、Signaling and Web サーバーが現在のステータスを Matchmaker サーバーに送信するかどうかを指定します。

matchmakerAddress

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

matchmakerPort

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

configFile

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

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 ドキュメントサイトへようこそ!

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

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

フィードバックを送信