轮子再造-UE4像素流(PixelStreaming)-广域网多人部署

Tips

  • 之前服务器搬家了,现在恢复正常。(2021-06-07)
  • UE4提供的网页端在新版本的chrome有不支持协议的BUG,已修复

背景

  • 官方的需要Nodejs支持
  • 多人的太麻烦了
  • 官方的登录验证太low了
  • UE4版本需要部署在云上,费用过高(后经测试+turn服务器是可以部署在本地的)

新轮子功能

  • UE4端本地部署,直接连接云服务器+turn服务器,即可完成外网部署
  • 采用Redis验证用户,每个用户名+IP可获取10分钟的用户体验,步骤请看下文
  • 采用C++ 编写,提高性能的同时支持多用户接入
  • 同时支持windows和linux,本文提供编译后的二进制文件分别支持windows10 centos7(已不再提供,需要请留言)
  • 无需更换插件,直接接入,网页端仅有3行代码修改

新轮子所需材料

  • coturn 本文提供编译后的centos7二进制文件
  • 自己写的一套服务器代码,集成了curl,libuv...,(不开源,怕自己写的太low)

效果图来一波

UE4端(第一人称射击模板打的包) 点击下载

  • 截图与文件说明


    运行截图

    bat为ps1脚本的启动文件,ps1为启动参数构建
    • StartPixelStreamApp.ps1代码(双击bat文件启动),然后访问https://app.svvip.cn:444/ps/按提示输入即可访问到像素流
#用户名
streamerUser = Read-Host "UserName"
$appName = Read-Host "AppName"
if($appName -eq ""){
  $appName="PS3.exe"
}
$serverAddr = [System.Net.Dns]::GetHostAddresses('turn.svvip.cn')
if($serverAddr -eq "10.0.3.100")
{
  $X=":80"
  $serverAddr = "turn.svvip.cn$X"
}
else
{
  $X=":81"
  $serverAddr = "turn.svvip.cn$X"
}
#以&结尾
$serverAddr="$serverAddr/?type=streamer&user=$streamerUser&"
#端口就为0就行,因为前面已经输入端口,此处是为了增加输入参数type,user
$Arguments = "-AudioMixer -PixelStreamingIP=$serverAddr -PixelStreamingPort=0 -windowed -ResX=400 -ResY=400"
Write-Output "Start App Arguments:$Arguments"

Start-Process -FilePath $appName -ArgumentList $Arguments
  • 服务器核心代码 点击下载
    核心代码基本在client.cpp中

    压缩文件内包含源代码,与二进制文件,与bat启动说明
  • 测试截图


    UE4,WEB,手机4G
  • 帮助说明
  1. WEB端可打开开发者界面【F12】查看错误信息
  2. 测试顺序:下载Demo,运行Bat文件,输入用户名,在浏览器中输入https://app.svvip.cn:444/ps/index.html,输入用户名即可看到效果
  3. 如需其他帮助,请留言。

你可能感兴趣的:(轮子再造-UE4像素流(PixelStreaming)-广域网多人部署)