电力巡检正在从「人爬塔」进化到「无人机飞」。但真正的远程巡检要求操控端实时看到无人机第一视角画面、在弱网下保持流畅,画面卡顿 2 秒,无人机可能已经撞上了电线。本文以即构科技(ZEGO)的方案为例拆解远程电力巡检的实时音视频(RTC) 架构,涵盖自定义视频采集、极低码率编码和弱网对抗。

一、远程巡检的技术需求
| 需求 | 指标 | 难点 |
|---|---|---|
| 无人机画面实时回传 | 端到端延迟 < 300ms | 无人机通过 4G 网络回传,上行带宽不稳定 |
| 极低码率编码 | 720p @ 500kbps 保持画面清晰 | 户外基站信号波动大,需要自适应降码率 |
| 多机位同时观看 | 控制中心同时拉 4 路无人机画面 | 值班员同时监控多个巡检任务 |
| 自定义视频采集 | 兼容大疆/行业无人机 HDMI/SDI 输出 | 无人机相机的视频输出格式不统一 |
二、整体架构
┌──────────────────────────────────────────────────────┐
│ 业务层:巡检调度系统 │
│ 任务管理 · 无人机控制 · 缺陷标注 · 报告生成 │
├──────────────────────────────────────────────────────┤
│ 信令与消息通道 │
│ 操控指令下发 · 飞行状态上报 · 缺陷标记同步 │
├──────────────────┬───────────────────────────────────┤
│ 无人机端 │ 控制中心 │
│ HDMI相机→编码→推流│ 拉流 4 路 + AI 识别 │
│ 自定义视频采集 │ 自定义渲染 + 缺陷标注 │
│ 极低码率 500kbps │ onRoomStreamUpdate 监听变化 │
│ → Express SDK │ → Express + AI 推理 │
├──────────────────┴───────────────────────────────────┤
│ 基础设施层 │
│ SD-RTN™ · 4G/5G 传输 · 云端录制 · 自动重连 │
└──────────────────────────────────────────────────────┘
三、核心技术实现
3.1 自定义视频采集:接入无人机 HDMI 视频源
电力巡检无人机(如大疆 M300/350)通常通过 HDMI 或 SDI 输出相机画面。使用 ZEGO SDK 的自定义视频采集功能,可以将无人机画面直接注入 RTC 推流通道:
// 接收无人机 HDMI 画面后,通过自定义采集推流(ZEGO Express SDK C++ API)
// 1. 开启自定义视频采集
engine->enableCustomVideoCapture(true, ZEGO_PUBLISH_CHANNEL_MAIN);
// 2. 设置自定义视频采集回调
engine->setCustomVideoCaptureHandler(new DroneCaptureHandler());
// 3. 在回调中接收采集通知,发送视频帧数据
class DroneCaptureHandler : public IZegoCustomVideoCaptureHandler {
void onStart(ZegoPublishChannel channel) override {
// 开始从无人机 HDMI 接收器获取视频帧
startHDMICapture();
}
void onStop(ZegoPublishChannel channel) override {
stopHDMICapture();
}
};
// 4. 从 HDMI 接收器拿到一帧数据后,发送给 SDK
// 发送裸数据(NV12/BGRA 格式)
engine->sendCustomVideoCaptureRawData(
videoData, // 视频帧数据
dataLength, // 数据长度
videoWidth, // 宽
videoHeight, // 高
stride, // 步长
ZEGO_VIDEO_BUFFER_TYPE_RAW_DATA,
engineTimestamp,
ZEGO_PUBLISH_CHANNEL_MAIN
);
3.2 极低码率保底:500kbps 保证画面可看
巡检画面的特点是:背景变化慢(天空、铁塔),但电线等细节需要清晰。通过 setVideoConfig 设置低码率 + 低帧率:
// 设置低码率视频配置(适用于 4G 无人机回传)
ZegoVideoConfig videoConfig;
videoConfig.captureWidth = 1280; // 采集 720p
videoConfig.captureHeight = 720;
videoConfig.encodeWidth = 1280;
videoConfig.encodeHeight = 720;
videoConfig.fps = 15; // 15fps,省带宽
videoConfig.bitrate = 500; // 500kbps
engine->setVideoConfig(videoConfig);
// 开启流量控制,帧率和分辨率自适应降级
engine->enableTrafficControl(true,
ZEGO_TRAFFIC_CONTROL_PROPERTY_ADAPTIVE_FPS |
ZEGO_TRAFFIC_CONTROL_PROPERTY_ADAPTIVE_RESOLUTION);
// 设置最低码率保底:200kbps 时极低帧率继续推
engine->setMinVideoBitrateForTrafficControl(200,
ZEGO_TRAFFIC_CONTROL_MIN_VIDEO_BITRATE_MODE_ULTRA_LOW_FPS);
四、FAQ
Q1:为什么不直接用 DJI OcuSync/Q 图传?
OcuSync 是点对点遥控图传,距离有限(最远 15km),不支持 4G/5G 中继。RTC 方案通过 4G 回传画面,覆盖范围不受限制,控制员可以在千里之外。
Q2:自定义视频采集支持什么数据格式?
ZEGO SDK 支持裸数据(ZEGO_VIDEO_BUFFER_TYPE_RAW_DATA)和编码数据(ZEGO_VIDEO_BUFFER_TYPE_ENCODED_DATA)两种。无人机 HDMI 采集卡通常输出 NV12 或 BGRA 裸数据,使用 sendCustomVideoCaptureRawData 输入即可。
五、总结
远程电力巡检的核心技术链是自定义视频采集(接入无人机画面)→ 极低码率编码(4G 带宽适应)→ 多路拉流(控制中心监控)。ZEGO SDK 的自定义采集能力让开发者可以将任何视频源接入 RTC 通道,低码率保底策略确保无人机在信号弱区仍能保持连接。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/info/69331.html