UE4.26像素流公网访问linux和win两种实现方式
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.安装openssl和openssl-devel:yum 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配置文件。
更多推荐
所有评论(0)