UE4像素流
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服務器
未完…待續。
(下一篇是外網部署)
總結
- 上一篇: JAVA获取汉字拼音首字母
- 下一篇: C语言排序算法总结