一、整体架构说明

机载流媒体服务采用 ZLMediaKit 作为核心流媒体服务器,部署在 LubanCat 机载设备上,核心三大能力:

  1. 接收 FFmpeg 推送的实时视频流(RTSP 协议)
  2. 支持多协议转码分发:RTSP / RTMP / WebRTC / HLS,同步推流至地面查看
  3. 原生内置 WebRTC 能力,浏览器零插件实时低延迟播放视频

二、机载网卡与 IP 地址

LubanCat 机载设备双网卡,两种联网模式对应不同访问 IP,电脑必须与飞机同网段才可通信:

表格

网卡名称IP 地址连接方式电脑访问 IP
eth0192.168.1.1网线直连 / USB RNDIS 虚拟网卡192.168.1.1
wlan0192.168.0.88WiFi 连接路由器192.168.0.88

三、端口作用详解

IP 类比楼栋地址,端口为楼栋内房间门牌号,ZLMediaKit 多端口分工独立:

表格

端口传输协议核心用途
8080HTTP后台管理页面 + WebRTC 测试页面 + 所有 HTTP 拉流接口
8554RTSPFFmpeg 推流接入端口,同时支持 VLC 等客户端 RTSP 拉流
8000UDPWebRTC 媒体实时数据传输端口,WebRTC 功能必须监听该端口

WebRTC 测试页面完整访问地址

http://[飞机IP]:8080/webrtc/

页面说明:内置可视化输入表单,不能直接自动播放,需手动填写流标识(app/stream)才能拉取对应视频流调试。

四、app=live、stream=camera 参数含义

两个参数为 ZLMediaKit 流唯一标识,来源机载源码 precland_node.cpp 第728行 FFmpeg 推流配置:

  1. app:live:应用分类名,等同于视频目录,用于区分多路不同设备推流
  2. stream:camera:单路流名称,代表当前机载摄像头视频流

关键规则:FFmpeg 推流填写的 app/stream,浏览器 WebRTC 拉流必须完全一致,服务器才能匹配到对应视频源。

五、WebRTC 无需修改机载代码原理

ZLMediaKit推流、拉流完全解耦架构:

  1. 推流侧:仅负责接收视频,不关心下游使用什么协议观看(RTSP/RTMP 均可)
  2. 拉流侧:自动完成协议转封装,客户端无论 WebRTC/HLS/FLV,服务器自动转换输出 类比视频平台:上传者只上传视频,观众可使用任意终端、任意协议观看,上传端无需改动。 当前机载仅需保持 FFmpeg 持续 RTSP 推流,服务器自动转 WebRTC 供浏览器播放,无需修改 precland 业务代码。

六、WebRTC 对比传统 RTSP 优势

表格

对比项RTSP 方案WebRTC 方案
客户端依赖必须安装 VLC/ffplay 播放器仅需现代浏览器,无额外软件
端到端延迟200~600ms100~300ms,实时性更强
内网 / 防火墙穿透端口固定,穿透困难内置 ICE/STUN 自动打洞
传输加密明文传输,存在泄露风险默认 DTLS-SRTC 强制加密
机载代码改动无需修改无需修改

七、完整部署 & 操作流程(命令 + 步骤)

步骤 1:查看飞机 eth0 有线 IP

ip addr show eth0 | grep inet

正常输出包含 192.168.1.1

步骤 2:校验 WebRTC 端口 8000 是否监听

ss -ulnp | grep 8000
  • 有输出:端口正常,直接跳转步骤 5
  • 无输出:缺少 WebRTC 依赖库,执行 3、4 步编译启用 WebRTC

步骤 3:安装 WebRTC 底层依赖 libsrtp

sudo apt install libsrtp2-dev

步骤 4:重新编译启用 WebRTC 的 ZLMediaKit 并重启服务

# 进入编译目录
cd /home/cat/ZLMediaKit/build
# cmake开启WebRTC编译开关
cmake .. -DENABLE_WEBRTC=ON
# 多核编译加速
make -j4
# 重启流媒体服务
sudo systemctl restart ZLMediaKit.service
# 再次校验8000端口
ss -ulnp | grep 8000

再次执行端口查询,出现监听进程代表 WebRTC 编译启动成功。

步骤 5:电脑浏览器拉流播放

  1. 电脑与机载设备处于同一网段
  2. 浏览器打开页面:http://192.168.1.1:8080/webrtc/
  3. 表单参数填写:
    • app:live
    • stream:camera
  4. 点击播放按钮,浏览器即可低延迟查看机载实时画面

补充常见问题提示

  1. 浏览器打不开页面:检查电脑 IP 网段、网线 / WiFi 连接、ZLMediaKit 服务是否启动
  2. 页面打开但无视频:确认 FFmpeg 正常推流、app/stream 参数填写无误、8000 UDP 端口开放
  3. 8000 端口无法监听:缺少 libsrtp 依赖,必须重新 cmake 开启 ENABLE_WEBRTC 编译
Logo

邀请您加入社区

更多推荐