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配置文件。

                        

猜你喜欢

转载自blog.csdn.net/weixin_41267342/article/details/124083340