需求描述
现在内网上有一个摄像头,上位机可以访问到该摄像头(上位机可以通过网线或wifi的形式连接到外网,但无公网ip),需要构建一个服务可以对该摄像头进行画面直播。
解决方案
根据需求,网络架构大致如下:
Cam->PC->Server->Client
其中关键问题就是打通PC->Server的联通
其实列出上面的网络架构,分析后就发现很好实现,本质上就是把内网的服务转到外网进行访问,这样我们直接做对原始的Cam构建的视频流进行内网穿透即可。
而内网穿透的工具很多很多,其中frp是相对成熟的。
那么我们直接搭建配置frp。
搭建frp
环境准备
首先我们需要有一台公网 ip 的服务器作为 frp 服务端,这里我使用自己购买的阿里云服务器
下载frp
这里直接贴出官方的github下载连接,根据自己的机型下载即可
https://github.com/fatedier/frp/releases/
配置frp server
我这里服务器和本机都是windows的,就直接下载解压了
然后我们需要把frps.toml 和frps.exe 放到服务器Server上(因为这个是服务端需要的)
#auth.token = "JAnbMEZOpdhDdeeblZgj" # 客户端连接的token
[common]
bind_port = 7001 #对外提供的ftp端口
#dashboard_port = 7002 #dashboard为面板相关配置
# dashboard 用户名密码,默认都为 admin,如果不需要,需要主动设置为空
#dashboard_user = admin
#dashboard_pwd = admin
配置frp client
这时我们需要把frpc.toml 和frpc.exe 放到本地机器(也就是上面的PC)上的
frpc.toml的配置如下
[common]
serverAddr = "" #服务器ip
serverPort = 7001 #服务器frp端口
auth.method = "token" # 鉴权方式
auth.token = "JAnbMEZOpdhDdeeblZgj" # 客户端连接的token
[[proxies]]
name = "rtsp" #服务昵称 随便取
type = "tcp" #服务的类型
local_ip = "127.0.0.1" #本地服务的ip 可以是局域网的ip
local_port = 8554 # RTSP服务监听的端口
remote_port = 7003 # 外部访问的端口
完成
按照上述配置并启动之后,这时候我们在其他的客户端,就可以通过服务器的7003端口直接访问对应的rtsp服务了,这时也可以在客户端增加配置,配置更多的服务转发,也可以支持多个客户端,只要同时管理好端口关系即可。
经过测试之后,发现速度很喜人,2k的分辨率视频可以做到实时转发,这样也就完成了我们直播的需求~
标签:视频,ip,端口,frp,token,直播,dashboard,简单,服务器 From: https://www.cnblogs.com/idealy/p/18563204