背景:father-WIFI-A(10.4.85.x)是 AP+AC的局域网(后面简称:网A)
child-tplink-B(192.168.10.x)是网卡直连网A后的机器人发出的WIFI(网B),由于机器人内部硬件限制此10网段不可修改;
已实现:连网B,192.168.10.x摄像头画面正常
需求:连网A如何访问摄像头?
一、MediaMTX 下载与配置
1.1. 下载地址:github.com/bluenviron/…
1.2. 下载 Windows amd64 版本(根据自身的系统下载对应版本)
1.3. 解压至 D:\xx\mediamtx
打开mediamtx.yml 在paths中修改rtsp地址
paths:
hikcam:
source: rtsp://admin:xxxxx@192.168.10.x:554/Streaming/Channels/101
sourceProtocol: tcp
# 关键:自动重连
sourceOnDemand: no
sourceOnDemandStartTimeout: 10s
sourceOnDemandCloseAfter: 30s
# 如果摄像头断开,自动重连
sourceRedirect: ""
# example:
# my_camera:
# source: rtsp://my_camera
# Settings under path "all_others" are applied to all paths that
# do not match another entry.
all_others:
把 MediaMTX 注册为 Windows 服务
Win+R==>cmd执行 sc create MediaMTX binPath= "D:\robot\mediamtx\mediamtx.exe D:\robot\mediamtx\mediamtx.yml" start= auto
手动启动MediaMTX
Win+R==>cmd执行 mediamtx.exe mediamtx.yml
根据以上配置后,可在浏览器直接跨网段webrtc访问 http://10.4.85.x:8889/hikcam;
以上可以拼接rtsp地址(rtsp:10.4.85.x:8889/hikcam)在web端使用video标签直接播放。如果遇到需要跨网段登录摄像头后台设置相关参数就需要用到下面的端口转发。
二,windows端口转发 Windows 端口转发
netsh interface portproxy add v4tov4 listenport=8087 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.192.x
查看端口转发是否成功
netsh interface portproxy show all
必须开启 Windows 服务 端口转发依赖 IP Helper 服务
sc query iphlpsvc
如果没启动(没看到上面的STATE)就执行
设置 开机自动启动
sc config iphlpsvc start= auto
启动 IP Helper 服务
net start iphlpsvc
如果觉得上面的步骤琐碎,也可以批量处理(注意修改IP和端口) 新建portproxy_fix.bat
@echo off
echo ===============================
echo PortProxy Auto Repair Script
echo ===============================
timeout /t 65 >nul
REM 1. 启动 IP Helper 服务
sc config iphlpsvc start= auto >nul
net start iphlpsvc >nul
REM 2. 删除旧规则
netsh interface portproxy delete v4tov4 listenport=8087 listenaddress=0.0.0.0 >nul
REM 3. 重新添加规则
netsh interface portproxy add v4tov4 listenport=8087 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.10.x
REM 4. 防火墙放行
netsh advfirewall firewall add rule name="cam8087" dir=in action=allow protocol=TCP localport=8087 >nul
echo Done.
timeout /t 3