UE4像素流(區域網路/公網)
文章目錄
- UE4像素流(區域網路/公網)
-
- @[TOC](文章目錄)
- 前言
-
- 一、啟用像素流
- 二、項目設定配置像素流參數以及打包
-
- 1.配置
- 打包
- 配置啟動參數
- 啟動像素流服務(信令伺服器)
-
- http服務 80端口 8888端口
- 端口作用介紹
- 信令伺服器自定義配置
- 測試
- 公網通路像素流
-
- 跟區域網路的差別
- 開始配置turn伺服器
- @[TOC](文章目錄)
- 1.配置
- 打包
- 配置啟動參數
- http服務 80端口 8888端口
- 端口作用介紹
- 信令伺服器自定義配置
- 跟區域網路的差別
- 開始配置turn伺服器
前言
像素流一種UE4内置的插件,具體作用參考官網連結:https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingIntro/
重點:硬體需求 NVENC (N卡)或 AMF(A卡)。詳細資訊在官網連結檢視
一、啟用像素流
在UE4的Plugins 裡啟用Pixelstream 插件。然後重新開機插件生效
二、項目設定配置像素流參數以及打包
1.配置
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888

(參數為預設參數,打包完成後可以用快捷方式 改參數)
打包
正常打包,打包完後目錄結構應該包含Pixelstream 目錄
新版後 目錄結構有所變化,不過隻要有PiexlStreaming 目錄就行。
配置啟動參數
建立快捷方式,添加啟動參數:
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
其他參數:
-RenderOffscreen
無頭運作虛幻引擎應用程式,在本地計算機上完全不顯示渲染。應用程式不會顯示任何視窗,也不會全屏呈現。 您可以将此參數與 -ForceRes 結合使用,以阻止虛幻引擎根據主顯示器的分辨率自動調整分辨率。
如果省略此參數,虛幻引擎應用程式視窗将正常渲染。如果此應用程式視窗最小化,像素流視訊和輸入捕獲将停止工作。是以,我們建議始終包含此參數,除非你需要能夠在同一台計算機上本地檢視虛幻引擎應用程式在運作時的渲染輸出。
-ForceRes
當與-ResX和-ResY結合使用時,這将強制虛幻引擎達到指定的分辨率。這在通常沒有顯示分辨率的雲部署中非常有用。
-ResX
設定虛幻引擎應用程式啟動時使用的分辨率的寬度分量。
-ResY
設定虛幻引擎應用程式啟動時使用的分辨率的高度分量。
-AudioMixer
強制虛幻引擎對音頻使用軟體混音,以便像素流送插件可以捕獲音頻。(此參數是必需的,以便在沒有音頻裝置時從應用程式捕獲音頻并将其流式傳輸到浏覽器,例如在雲部署中。)
-Unattended
禁止在遇到錯誤時生成對話框。這在螢幕外或容器中運作虛幻引擎時非常有用,因為消息框在這些場景中可以無限期挂起。
-StdOut和-FullStdOutLogOutput
這兩個标志的組合将産生最大的日志記錄輸出,這在調試或檢視 SSH 終端中的實時日志時非常有用。
啟動像素流服務(信令伺服器)
http服務 80端口 8888端口
如果80 8888端口可以正常使用 直接運作run 指令,啟動像素流服務。(UE4 4.26版本的)
啟動的時候會安裝一些依賴。
啟動成功後:指令行顯示如下,服務啟動等待UE4連結
WebSocket listening to Streamer connections on :8888
WebSocket listening to Players connections on :80
Http listening on *: 80
然後啟動上邊設定好的快捷方式 程式運作後 指令行出現:
Streamer connected: ::1
代表成功接入UE4 畫面。
(UE4 4.27後新版本)
SignallingWebServer\platform_scripts\cmd\setup.ps1 用管理者權限執行。
SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1
再執行Start_SignallingServer.ps1
執行成功後會顯示:
WebSocket listening to Streamer connections on :8888
WebSocket listening to Players connections on :80
Http listening on *: 80
端口作用介紹
Signalling Server host
80- 對于來自用戶端的所有 HTTP 請求。
要更改此值,請為信令伺服器設定 --httpPort參數。
443 - 對于來自用戶端的所有 HTTPS 請求,當信令伺服器在 HTTPS 模式下運作時。
要更改此值,請為信令伺服器設定 --httpsPort參數。
8888 - 用于來自虛幻引擎應用程式的所有傳入連接配接請求。
要更改此值,請同時設定信令伺服器的 --streamerPort參數和UE4 應用程式的 PixelStreamingPort參數。
Matchmaker Server host
90-表示來自用戶端的所有HTTP請求。
若要更改此值,請使用比對伺服器 --httpPort參數。
9999- 用于信令伺服器發送的所有消息。
若要更改此值,請同時設定–matchmakerPort 參數用于比對器伺服器,并為信令伺服器設定–matchmakerPort參數。
信令伺服器自定義配置
舊的版本cirrus.js
新版本 在同目錄下的 config.js 裡可以配置端口IP
像素流相關指令行配置參數連結:
https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingReference/
測試
在同一區域網路的其他裝置浏覽器中輸入 目前電腦的IP+端口号(本次實驗用的80) 可以正常通路代表部署成功。或者在本機浏覽器輸入localhost:80 如下圖:
至此本地區域網路像素流部署完成。
公網通路像素流
跟區域網路的差別
為了使信令和Web伺服器能夠在虛幻引擎應用程式和浏覽器之間協商直接連接配接,每一方都需要向對方發送自己的IP位址。浏覽器需要能夠通路UE4應用程式發送的IP位址,反之亦然。
在簡單的區域網路中,每個端點通常可以假設另一方可以使用其自己的網卡已知的專用 IP 位址通路它。在開放的網際網路上,跨子網,或者當網絡位址轉換(NAT)服務在浏覽器和UE4應用程式之間進行幹預時,通常不是這種情況。相反,每一方都需要通過查詢實作 STUN(NAT 會話周遊實用程式)協定的伺服器來找出自己的公開可見 IP 位址。在 STUN 伺服器告訴每個端點其公開可見的 IP 位址後,信令和 Web 伺服器可以繼續代理其直接連接配接。
或者,您可以使用TURN伺服器在UE4應用程式和浏覽器之間中繼媒體流。使用TURN協定,TURN伺服器一方面連接配接到UE4應用程式,另一方面連接配接到浏覽器。UE4應用程式将其所有流資料發送到TURN伺服器,TURN伺服器将資料轉發到浏覽器。在這種情況下,UE4應用程式和浏覽器之間沒有直接連接配接。(如果您需要通過無線營運商網絡支援移動裝置,您可能别無選擇,隻能使用 TURN 伺服器。移動網絡通常會阻止用戶端通過WebRTC協定成功連接配接。
STUN和TURN協定以及從一台伺服器回退到另一台伺服器的能力共同構成了ICE(互動式連接配接建立)架構。
您可以在網際網路上找到STUN和TURN伺服器的幾個開源實作。甚至還有公共 STUN伺服器,您可以免費使用而不是托管自己的伺服器,盡管在使用不是自己托管的服務時應謹慎行事。(由于通過 TURN 協定中繼媒體所涉及的吞吐量和帶寬,公共 TURN 服務很少免費提供。
Samples/platform_scripts/
為友善起見,該檔案夾包含用于在Windows和Linux上運作CoTURN的腳本。CoTURN是一個免費的開源STUN / TURN伺服器,可用于生産。我們已經删除了過去釋出的 STUN 和 TURN 參考伺服器,因為它們不是生産級的。
要将像素流送設定為使用 ICE 連接配接,您需要在信令和 Web 伺服器的對等連接配接選項配置參數中設定要使用的 STUN 和 TURN 伺服器的主機名。有關如何設定此參數的格式以及如何提供此參數的詳細資訊,參考連結:https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingReference/
此外,如果您要托管自己的 STUN 或 TURN 伺服器,則必須確定您在peerConnectionOptions參數中為其指定的 IP 位址和端口在開放的網際網路上可見。
開始配置turn伺服器
未完…待續。
(下一篇是外網部署)