挑战
将远程 IP 摄像机连接到集中式云平台带来了多项基础设施挑战:
- 网络安全 — 摄像机 RTSP 流经公共互联网,若无加密则视频流易受拦截
- NAT/防火墙穿透 — 企业防火墙和 NAT 后面的摄像机无法直接从云端访问
- 转发开销 — 原始 RTSP 流需要转换为网络友好协议 (HLS) 以供浏览器观看,这需要专用的转码基础设施
- 可变需求 — 观众和 AI 处理需求全天波动,但固定的转发服务器无法扩展
- 大规模录制 — 持续录制数十个摄像机流需要可靠的存储管理和保留策略
- 流的可靠性 — VPN 隧道在网络不稳定期间会断开,需要自动重新连接而不丢失流的连续性
- 多协议传输 — 不同的消费者需要不同的协议:RTSP 用于 AI 工作器,HLS 用于网页观看者,以及录制片段用于存档
我们的解决方案
我们构建了一个基于 VPN 隧道的 RTSP 流媒体平台,其中包含一个用于安全摄像机连接的 VPN 中心、用于多协议传输的自动扩展 RTSP 转发服务器、用于浏览器播放的 HLS 封装以及带有保留管理的连续录制功能。
架构
- VPN 中心:集中式 VPN 服务器,用于与远程摄像机站点建立安全隧道
- RTSP 摄取:连接 VPN 的摄像机通过加密隧道发布 RTSP 流
- 转发集群:用于 RTSP 中继、HLS 转换和流分发的自动扩展 MediaMTX 服务器
- HLS 封装:用于网络浏览器传输的实时 RTSP 到 HLS 转换
- 录制服务:基于分段存储和保留策略的连续流录制
- 负载均衡器:将观众和 AI 工作器的连接分配到转发服务器
- 编排器:监控需求并扩展或缩减转发集群
- 存储:用于录制分段的对象存储,具有生命周期管理
VPN 隧道架构
安全的摄像机连接
- 部署在云端的 VPN 中心与每个远程站点建立加密隧道
- 远程位置的摄像机在 VPN 隧道内传输 RTSP 流 — 无需暴露在公共互联网
- 每个站点都获得一个连接到中心的 VPN 客户端,创建一个私有网络覆盖
- 云基础设施通过私有 VPN IP 地址访问摄像机 RTSP 流
- 每个站点的多台摄像机共享一个 VPN 隧道
NAT/防火墙穿透
- VPN 客户端从摄像机站点发起出站连接(无需入站防火墙规则)
- 中心接受入站连接,创建双向隧道
- 云服务通过 VPN 网络访问摄像机 RTSP 流,如同它们在本地一样
可靠性
- 网络中断时自动重新连接隧道
- 心跳探测检测并从静默故障中恢复
- 支持多种隧道协议,以兼容受限网络
- 每个隧道的健康监控,并在长时间断开时发出警报
自动扩展转发
RTSP 中继
转发服务器从 VPN 网络拉取摄像机 RTSP 流,并将其提供给下游消费者:
- AI 工作器通过 RTSP 连接,实现低延迟、帧精确的处理
- 多个消费者可以访问同一摄像机流,而不会增加摄像机的额外负载
- 流复用减少了摄像机站点的带宽(一次拉取,多个消费者)
HLS 转换
对于基于网页的观看,转发服务器实时将 RTSP 转换为 HLS:
- 基于分段的封装,通过标准网络基础设施进行 HTTP 传输
- 支持自适应比特率,以适应不同的观众网络条件
- 与 CDN 兼容的输出,用于边缘缓存传输
- 低延迟 HLS 配置,用于近实时观看
自动扩展
转发集群根据需求进行扩展:
- 扩容 — 当每台服务器的观众/AI 连接数超过阈值或 CPU 利用率高时
- 缩容 — 当利用率在持续一段时间内低于阈值时
- 新服务器从 VPN 网络拉取摄像机流并向负载均衡器注册
- 优雅关机在移除服务器前排空连接(观众通过稳定的 URL 自动重新连接)
录制管道
连续录制
- 转发服务器或专用录制工作器将 RTSP 流捕获为分段文件
- 以可配置的时间间隔写入分段,以便于管理文件大小
- 每个分段都带有摄像机 ID、时间戳和时长元数据标签
存储管理
- 分段上传到对象存储以进行持久存档
- 保留策略自动删除早于配置保留期限的分段
- 存储生命周期规则在删除前将较旧的分段移动到更便宜的存储层
- 每个摄像机和每个站点的存储配额可防止成本失控
回放
- 通过基于时间的查询(摄像机 + 时间范围)访问录制分段
- 实时生成 HLS 清单,用于基于浏览器的录制片段回放
- 以分段级别的粒度在录制时间线中查找和快进
多协议传输
| 消费者 | 协议 | 延迟 | 用例 |
|----------|----------|---------|----------|
| AI 工作器 | RTSP | 低 (~500ms) | 实时目标检测、分析 |
| 网页观看者 | HLS | 中等 (2-6s) | 基于浏览器的实时监控 |
| 移动应用程序 | HLS | 中等 (2-6s) | 移动设备上的远程监控 |
| 存档 | 录制分段 | 不适用 | 事件审查、合规性、取证 |
监控与可靠性
流健康状况
- 每个摄像机的流状态监控(已连接、正在缓冲、已断开)
- 每个站点的 VPN 隧道健康状况(延迟、丢包、正常运行时间)
- 转发服务器指标(CPU、带宽、连接数)
- 录制管道健康状况(分段写入速率、存储使用情况、上传状态)
警报
- 摄像机断开连接警报,带站点标识
- VPN 隧道故障通知
- 转发集群容量警告
- 存储配额和保留警报
- 通过分段连续性检查检测到的录制间隙
主要功能
- VPN 安全摄取 — 加密隧道保护来自远程摄像机的 RTSP 流
- NAT/防火墙穿透 — 出站 VPN 连接绕过受限的网络配置
- 自动扩展转发 — 集群根据观众和 AI 需求进行扩展
- HLS 转换 — 实时 RTSP 到 HLS 转换,用于基于浏览器的观看
- RTSP 中继 — 为 AI 处理工作器提供低延迟的流访问
- 连续录制 — 基于分段的录制,带保留管理
- 多协议 — 从单一摄取获取 RTSP、HLS 和录制分段
- 自动重连 — VPN 隧道和流连接从中断中自动恢复
- 存储生命周期 — 分层存储,自动执行保留策略
- 流复用 — 一次摄像机拉取服务多个消费者,不增加摄像机额外负载
成果
技术栈
caseStudyDetail.more 案例研究
探索更多我们的技术实施案例
常见问题
MicrocosmWorks添加VPN层是因为位于企业防火墙或NAT后的RTSP摄像头无法从云基础设施直接访问,并且将摄像头RTSP端口暴露给公共互联网会造成严重的安全漏洞。VPN隧道会增加大约5-15毫秒的延迟,具体取决于地理距离,这对于监控用例来说可以忽略不计,并且加密隧道确保传输中的视频数据符合企业安全和合规性要求。
MicrocosmWorks 实施了自适应比特率 HLS 转码,该转码能从每个 RTSP 源流生成多种质量的画面,从而允许 HLS 播放器根据观众的可用带宽自动在不同质量级别之间切换。该系统使用硬件加速转码,以最小化实时 RTSP 馈送和 HLS 输出之间的延迟,实现典型的端到端延迟为 4-8 秒,具体取决于分段持续时间配置。
MicrocosmWorks 在VPN网关中内置了边缘侧缓冲,它在网络中断期间本地缓存流片段,并在连接恢复后按时间顺序上传它们,即使在长时间断开连接期间也能确保没有录制空白。云端录制服务会检测到时间线空白,并在回放界面中标记它们,使操作员能够清楚地了解实时画面延迟的任何时期。
MicrocosmWorks 对该架构进行了测试,以支持每个VPN隧道50-100个并发1080p RTSP流,具体取决于摄像机站点的可用上行带宽和VPN网关的硬件规格。对于拥有更多摄像机的站点,系统支持多个并行VPN隧道,并具有自动流分发功能,并且随着总流数量的增加,云端自动扩缩器会配置额外的重流工作器。
MicrocosmWorks 以每小时 25-45 美元的开发费率构建基于 VPN 的流媒体平台,典型的实现需要 2-4 个月才能完成生产就绪部署,其中包括 VPN 基础设施、自动扩缩容转播、HLS 转码和录制。持续的云成本通过自动扩缩容模式进行优化,通过在非高峰时段缩减转播工作器,通常比固定容量部署低 40-60%。
