先决条件

  • 检查你的操作系统和硬件: 像素流送插件只能在运行Windows和Linux操作系统并具有特定类型GPU硬件的计算机上编码视频。如需了解详情,请参阅像素流送参考。
  • 安装node.js: 如果你还没有在计算机上安装 node.js ,你需要下载并安装它。
  • 打开网络端口: 确保你打开了以下网络端口,用于在本地网络上通信:80、8888。如果你需要更改这些默认值,请参阅像素流送参考。
  • 停止其他Web服务器: 如果你的计算机正在运行其他Web服务器,请暂时将其停止。
  • IP地址: 你需要知道计算机的IP地址,才能通过互联网测试像素流送。
    最好首先在LAN或VPN中开始像素流送,这意味着你可以将 localhost 或 127.0.0.1 用作你的像素流送IP地址。 如果你尝试从不同网络上的计算机连接,你很可能需要配置你的信令服务器,以使用STUN/TURN服务器。请参阅像素流送参考,详细了解关于如何使用 peerConnectionOptions 配置你的信令服务器,从而指定STUN/TURN服务器。

1 - 准备你的虚幻引擎应用程序

在此步骤中,你将为项目创建独立的可执行文件。

  1. 在虚幻编辑器中打开你的项目。

  2. 在虚幻编辑器中,从主菜单选择 编辑(Edit)> 插件(Plugins)

  3. 使用 图形(Graphics) 类别,找到 像素流送(Pixel Streaming) 插件并勾选 启用(Enabled) 框。
    启用像素流送插件

  4. 点击 立即重启(Restart Now) ,重启你的项目并应用更改。
    立即重启

  5. 返回虚幻编辑器,从主菜单选择 编辑(Edit)> 项目设置(Project Settings)

  6. 在主菜单中,选择 编辑(Edit)> 编辑器偏好设置…(Editor Preferences…)

  7. 关卡编辑器(Level Editor)> 播放(Play) 类别下,找到 额外启动参数(Additional Launch Parameters) 设置,并将其值设置为 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
    其他启动参数

  8. 为Windows打包你的项目。在虚幻编辑器的主菜单中,选择 文件(Files)> 打包项目(Package Project)> Windows(64位)(Windows (64-bit)) 。
    Windows 64位程序包
    打包过程完成后,转至你在上面选择的文件夹。你将找到名为 Windows 的文件夹,其内容类似于以下内容:
    打包输出

每次你启动打包的应用程序时,需要向其传递上面的第8步中设置的相同命令行标记。一种做法是设置快捷方式: 1. 按 Alt 键并拖动你的 .exe 文件,在相同文件夹中(或计算机上你想要的其他任意位置)创建新的快捷方式。
创建快捷方式
2. 右键点击快捷方式,从上下文菜单选择 属性(Properties) 。
快捷方式属性
3. 在 快捷方式属性(Shortcut Properties) 窗口的 快捷方式(Shortcut) 选项卡上,在 目标(Target) 字段末尾附加文本-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 ,并点击 确定(OK)
在这里插入图片描述

命令行参数
-RenderOffScreen 					命令行参数。避免如果你的虚幻引擎应用程序窗口意外被最小化,像素流送视频和输入流将停止工作。
-PixelStreamingDebugDumpFrame=-1 	0-51,值越低,质量越高,但比特率越高。注意:-1将禁用对最小QP的所有硬性限制
-PixelStreamingEncoderMaxQP=-1 		0-51,值越低,质量越高,但比特率越高。注意:-1将禁用对最小QP的所有硬性限制

其他参数

2 - 获取像素流送服务器

最近对像素流送的一些更改已将像素流送的前端和Web服务器元素移至外部仓库。我们将其称作像素流送基础设施。
访问像素流送基础设施的方法有多种。

  1. 从以下地址直接访问github仓库:https://github.com/EpicGames/PixelStreamingInfrastructure
  2. 在你偏好的终端中执行 git clone --branch UE5.4 https://github.com/EpicGamesExt/PixelStreamingInfrastructure.git (确保你安装了git)。
  3. 找到 \引擎安装路径\Engine\Plugins\Media\PixelStreaming\Resources\WebServers 并运行 get_ps_servers 命令(确保将相应的 .bat 脚本用于Windows,将相应的 .sh 脚本用于Linux)。这会自动将相关像素流送基础设施分支提取到该文件夹中。

上述git命令将提取基础设施的5.4分支。如果你需要不同的分支,请相应修改git命令。
如需详细了解像素流送前端和Web服务器更改,请参阅像素流送基础设施

3 - 启动服务器

在这一步骤中,你将启动Web服务,以便在虚幻引擎应用程序和客户端浏览器之间建立点对点连接。如果还未完成上一步骤,则无法访问这些服务器。

以下步骤假定你使用的是Windows。但Linux也是同一流程,不同之处仅仅是在SignallingWebServer\platform_scripts\bash文件夹中运行脚本。
  1. 在拉取像素流送基础设施的位置,在文件夹 SignallingWebServer 下找到信令服务器的位置。
    在这里插入图片描述

  2. 要为信令服务器做准备,请首先以管理员身份打开PowerShell,并运行 .\SignallingWebServer\platform_scripts\cmd\setup.ps1 。这将安装所有必需的依赖性。

  3. 运行 .\SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1 以启动信令服务器。服务器已启动并准备好接受连接时,你将在控制台窗口中看到以下行:

  4. 现在,通过你在之前小节中创建的快捷方式启动虚幻引擎应用程序。如果你偏好通过命令行启动应用程序,请执行以下命令:

MyPixelStreamingApplication.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888

最终结果

当虚幻引擎应用程序连接到信令和Web服务器时,你应该会在信令和Web服务器打开的控制台窗口中看到以下输出行:

Streamer connected

这意味着,虚幻引擎应用程序现在是在启用像素流送插件的情况下运行,并且前端信令和Web服务器随时可以将连接的客户端路由到虚幻引擎应用程序。

你可以根据需要独立停止和重启虚幻引擎应用程序以及信令和Web服务器。只要它们同时都在运行,就应该能够自动重新连接。

此时,你需要的一切都已在你的计算机上设置妥当并正常运行。剩下的就是连接浏览器。

4 - 连接!

在此步骤中,你需要将多个不同设备上运行的Web浏览器连接到你的像素流送广播。

  1. 在运行虚幻引擎应用程序的那台计算机上,按Alt-Tab键,将焦点从虚幻引擎应用程序切换开,并启动支持的Web浏览器(谷歌浏览器和火狐浏览器是稳妥的选项)。

  2. 在地址栏中,前往 http://loaclhost 。这是本地计算机的IP地址,因此请求应该由信令服务器处理:
    连接到本地主机

  3. 点击页面以连接,然后再次点击"播放(Play)"按钮以开始流。

  4. 现在你将连接到应用程序,并且应该会看到渲染的输出流送到播放器网页的中间:
    本地主机的媒体流

默认播放器页面已经设置为将键盘、鼠标和触摸屏输入转发到虚幻引擎,因此你可以像直接控制应用那样控制应用程序和浏览。

  1. 点击窗口左侧的 添加**(设置)** 按钮,展开一些用于控制流的内置选项。如需可用选项的详细讲解,请参阅此处的仓库:https://github.com/EpicGames/PixelStreamingInfrastructure

  2. 现在,查找你的网络中的其他计算机和/或移动设备。重复相同步骤,但不使用 loacalhost ,而是将浏览器定向到运行虚幻引擎应用程序和信令服务器的计算机的IP地址。

远程主机的媒体流

最终结果

现在你有一个虚幻引擎实例在你的计算机上运行,通过你的本地网络将媒体流广播到多个设备。每个连接的设备会看到同一个关卡的同一个视图,全部在同一个原始桌面PC上渲染。
默认情况下,所有连接的设备会共享对虚幻引擎应用程序的控制,转发所有键盘、鼠标和触摸屏输入。

配套vue项目

https://gitee.com/klus-liang/ue_pixel_streaming.git
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐