UE4.26像素流公网访问linux和win两种实现方式

        因为像素流访问时可能使用到0-65535中的任意一个端口,所以必须开启所有端口号,或者关闭防火墙。这个是非常重要的点,再次强调一遍:必须开启所有端口号!这也是我折腾了好久,很多次没成功的原因。当然开启所有端口号或关闭防火墙有安全风险,建议单独弄一台服务器干净服务器,上面没有重要敏感用户数据尾号。

方式一:linux方式(以centos7为例):

      1. 安装环境:yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel openssl
       2.安装git:yum install git

        3.安装opensslopenssl-develyum install openssl

                                                               yum -y install openssl-devel

     4.安装libevent,官网:libevent

                                        github地址:https://github.com/libevent/libevent

                ①wget whttps://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz

                ②tar zxvf  libevent-2.1.12-stable

                ③cd libevent-2.1.12-stable
               ④编译:(1) ./configure

                               (2) make verify   # (校验用,选输)
                               (3) make && make install

               5.安装coturn:

                        github地址:GitHub - coturn/coturn: coturn TURN server project

                        各种不同版本地址:Index of /turnserver

                        ①wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz

                       ② tar -zxvf  turnserver-4.5.0.8

                        ③cd turnserver-4.5.0.8

                        ④指定安装的目录:./configure --prefix=/usr/local/turnserver

                        ⑤编译:make && make install

                        ⑥复制并修改配置文件名:cp /usr/local/turnserver/etc/turnserver.conf.default /usr/local/turnserver/etc/turnserver.conf

                        ⑦配置文件turnserver.conf中配置

-----------------------------turnserver.conf配置文件-----start-------------------------------------

 # 网卡名   与ifconfig查到的网卡名称一致
relay-device=eth0
#内网IP            我填的还是服务器的公网IP
listening-ip=127.0.0.1
listening-port=3478
#内网IP
tls-listening-port=5349
relay-ip=127.0.0.1
#公网IP
external-ip=121.90.214.35
relay-threads=500
#打开密码验证
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile="/var/run/turnserver.pid"
min-port=40000
max-port=65535
#设置用户名和密码,创建IceServer时使用
user=admin:123456
# 外网IP绑定的域名
realm=www.xxxx.xyz
# 服务器名称,用于OAuth认证,默认和realm相同,部分浏览器本段不设可能会引发cors错误。
server-name=www.xxxx.xyz
# 认证密码,和前面设置的密码保持一致
cli-password=123456

-----------------------------turnserver.conf配置文件-----end-------------------------------------

                         ⑧配置文件中的cert和pkey配置的自签名证书用openssl命令生成:
    openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 –nodes

                        ⑨启动turnserver:turnserver -o -a -f

                        ⑩通过这个测试地址是否正常:Trickle ICE

                6.信令服务器配置和启动:

                        ①下载地址:链接:https://pan.baidu.com/s/1ikN3FiT8Fma0n6SqT01KNQ
提取码:h4pj
                        ②修改SignallingWebServer目录下的config.json,

-----------------------------config.json配置文件-----start-------------------------------------

  {
          "UseFrontend": false,
          "UseMatchmaker": false,
          "UseHTTPS": false,
          "UseAuthentication": false,
          "LogToFile": true,
          "HomepageFile": "player.htm",
          "AdditionalRoutes": {},
          "EnableWebserver": true,
          "peerConnectionOptions": "{\"offerExtmapAllowMixed\": false, \"iceServers\": [{\"urls\": [\"stun:www.yxt0618.xyz:3478\",\"turn:121.89.213.35:3478\"], \"username\": \"admin\", \"credential\": \"1234    56\"}] }",
          "steamerPort": 8002,
          "httpPort": 66,
          "publicIp": "121.89.213.35"
  }

-----------------------------config.json配置文件-----end-------------------------------------

        说明: (1) 配置为启动web服务器:"EnableWebserver": true
                     (2)浏览器访问端口:"httpPort": 66
                    (3)web访问网页:"HomepageFile": "player.htm",
                   (4) turn服务器的配置信息:"peerConnectionOptions": "{\"offerExtmapAllowMixed\": false, \"iceServers\": [{\"urls\": [\"stun:www.xxxx.xyz:3478\",\"turn:121.90.214.35:3478\"], \"username\": \"admin\", \"credential\": \"123456\"}] }",

                  ③启动信令服务器(需要安装nodejs,安i装nodejs就不再赘述了):在SignallingWebServer这个目录下执行:node cirrus --configFile="./config.json"

               6.测试像素流(在自己window电脑上启动):

                        demo下载地址:链接:https://pan.baidu.com/s/1gj7iPd6vcXOSyWV9nlEjKQ
提取码:798c
                        ①将Demo目录下的PS3.exe鼠标右键生成快捷方式,然后对快捷方式鼠标右键属性,修改:快捷方式-----目标中内容为:C:\Users\yxt\Desktop\xinling\2022\Demo\PS3.exe -AudioMixer - PixelStreamingIP=121.90.214.35 -PixelStreamingPort=8002 -RenderOfScreen

                                说明:(1)快捷键的路径根据自己项目情况写。

                                                (2)- PixelStreamingIP=121.90.214.35中ip即为linux公网ip,

                                                (3)-PixelStreamingPort=8002中的端口即为上面信令服务器配置"steamerPort": 8002这个端口。

                        ②浏览器中访问:121.90.214.35:66(ip为公网ip,端口为信令服务器中"httpPort": 66这个端口)

        linux方式结束

方式一:window方式(阿里云win版系统为例):

        1.下载信令服务文件:链接:https://pan.baidu.com/s/1ikN3FiT8Fma0n6SqT01KNQ
提取码:h4pj

        2.修改信令服务中农配置文件:

                  ①文件Start_AWS_SignallingServer.ps1修改为:$PublicIp=127.0.0.1或者自己公网ip

                   ②文件cirrus.js第81行var httpPort = 80;为启动成功后浏览器访问的端口号。

                             第85行var streamerPort = 8888;为像素流快捷方式中要配的端口号。

                     ③双击文件runAWS_WithTURN.bat启动,然后像素流配置和访问方式参考上面linux中第6步和第7步。

                linux和window的区别是linux需要安装个coturn服务程序,使用的config.json这配置文件。而win方式是使用的Start_AWS_SignallingServer.ps1、cirrus.js和runAWS_WithTURN.bat配置文件。

                        

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
UE4中,实现多用户访问素流的设置方法可以通过以下步骤来实现: 1. 创建像素流渲染目标:首先,您需要在UE4中创建一个像素流渲染目标。您可以使用Unreal Engine提供的渲染目标相关的API来创建一个用于像素流的渲染目标。 2. 设置像素流权限:在多用户访问的情况下,您需要设置像素流的权限以允许多个用户同时访问。这可以通过设置渲染目标的读写权限来实现。 3. 同步机制:为了确保多个用户对像素流访问不会发生冲突,您可以使用同步机制来协调不同用户之间的访问。例如,您可以使用互斥锁(mutex)或其他线程同步机制来确保在任何时间点只有一个用户在操作像素流。 4. 分配用户ID:为了区分不同的用户,您可以为每个用户分配一个唯一的用户ID。这样,您可以根据用户ID来跟踪和管理不同用户对像素流访问。 5. 用户交互逻辑:根据您的需求,您可以设计和实现适合多用户交互的逻辑,例如用户之间的协作、通信和权限控制等。 需要注意的是,多用户访问素流可能涉及到并发和同步的问题,因此在实现时需要考虑线程安全性和同步机制。此外,具体的实现细节可能会因为您的项目和需求而有所不同,所以我建议您参考UE4的文档和相关资源来获得更具体、更详细的信息。 希望这些信息对您有所帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值