首页 / 影像数据 / 车载独立监控与本地媒体架构
车载独立监控与本地媒体架构
控制面与媒体面分离:云端只处理控制、状态与事件;实时/历史视频优先端到端直连,录像留在设备 microSD。
适用模式与原图
本页描述车载独立监控定位守护 App(V3)的隐私优先部署模式:云端只承担身份、设备归属、指令、状态、定位、告警和会话信令;实时视频优先在 App 与设备之间直连,录像文件只留在设备 microSD。它特别适用于“不让平台接收或保存视频内容”的产品承诺。
该模式与“云录像/对象存储回放”是两条明确的产品线,不能混用。现有影像数据关联模型中关于 OSS 录像索引的设计仅适用于选择云录像的产品配置;本页的本地模式不创建云端录像文件或云端缩略图。
控制面、媒体面与存储边界
| 平面 | 允许流转 | 禁止流转 | 完成判据 |
|---|---|---|---|
| 控制面 | 绑定、授权、设备状态、定位、告警、PTZ/直播控制、WebRTC Offer/Answer/ICE 信令、会话令牌 | 视频帧、录像文件、连续缩略图、媒体缓存 | MQTT over TLS 仅携带控制/事件;业务库仅保留元数据和审计事实 |
| 媒体面 | 实时视频/语音的 WebRTC + DTLS-SRTP;必要时 TURN relay | 经 Java/Go 业务服务转发媒体;使用 TURN 传输历史文件或日志包 | App 与设备之间建立加密媒体通道;会话结束后不保留服务端媒体副本 |
| 本地存储面 | 设备 microSD 分段录像、关键时间索引、告警事件标记;App RAM 中的回放时间线/缩略图 | 云端录像、App 磁盘缩略图缓存、含视频内容的 URL 日志 | 录像仅可由设备本地授权接口读取;App 退出或切后台时停止直播并清理内存态 |
不可妥协的边界:“历史回放缩略图仅内存显示,不落盘”与“平台不接收/不保存视频流、帧或内容存储”必须通过网络抓包、服务端访问日志、对象存储清单和 App 本地文件检查共同验证,不能只看功能页面。
端、云、车载设备职责
| 区域 | 职责 | 关键约束 |
|---|---|---|
| iOS / Android App | 设备列表、地图、守护、实时预览、历史回放、设备设置;维护 MQTT 客户端、WebRTC、播放/时间线控制器。 | 回放预览与缩略图仅存 RAM;密钥进入 Keychain/Keystore;App 退出立即 stop live。 |
| 云端控制与业务平台 | API Gateway、MQTT Broker、直播/回放会话、STUN/TURN、推送、策略、设备管理、用户与授权、告警/定位/审计。 | 不接收媒体内容;会话服务只签发短时 Token、校验设备归属与权限,并记录元数据审计。 |
| 车载设备 RK1126A | 前视/车内/后视三路摄像头、GNSS、BLE、Wi-Fi、microSD;设备控制、MQTT、WebRTC、HTTPS/WSS 本地接口、录像索引。 | 录像与关键帧留在 microSD;多码流资源管理必须限制并发高码率流,避免设备过载。 |
设备端媒体资源策略
- 优先级:多路预览可走缩略/低码流;同一时刻只允许有限高码率直播。主码流可按前视 1080P 20fps、车内 720P 15fps、后视 1080P 20fps 的设备能力配置,参数必须由产品型号能力表下发。
- 观看模式:缩略预览优先
thumb;单路查看可切smooth/hd。切换是设备资源管理器的受控动作,需回报实际生效档位。 - 录像:设备将录像文件、关键时间索引和告警标记写入 microSD;云端可接收“有录像/有告警”的元数据,但不接收录像内容。
实时与历史会话流程
实时直播:控制经云、媒体直连
- App 通过 HTTPS 创建直播会话。云端校验登录、设备归属、订阅权益、隐私授权和设备在线状态。
- 云端生成短时
media_session_id、会话 Token 与 STUN 配置;通过 MQTT over TLS 把控制/信令通知设备。 - App 与设备交换 WebRTC SDP 和 ICE Candidate,默认尝试 UDP 直连;媒体建立后使用 DTLS-SRTP,媒体字节不经过业务服务。
- 若直连失败,按会话优先级申请短效 TURN 凭证;TURN 只中继,不存储,且触发码率/分辨率降级。
- App 或设备结束会话后上报状态与质量摘要,云端撤销 Token、停止设备码流;客户端清理 RAM 中的播放器、缩略图与时间线状态。
历史回放:设备 microSD 为唯一内容源
- App 请求指定设备、通道和时间窗的录像目录;设备本地录像索引服务返回可用片段/关键时间标记。
- App 优先使用本地热点或同一 LAN 的 HTTPS/WebRTC 直连;远程访问可走受控 WebRTC/TURN,但不上传录像文件到云端。
- 时间线、缩略预览和缓冲片段仅保存在 App 进程内存,禁止写入相册、缓存目录或分析 SDK。
- 会话结束、超时、切后台或用户撤销授权后,设备停止回放流,App 释放内存,云端仅保留必要的访问审计。
接口与会话最小契约
| 链路 | 协议 | 必须携带/校验 | 禁止内容 |
|---|---|---|---|
| App ↔ 云端 API | HTTPS | 用户身份、设备归属、授权范围、会话/幂等 ID | 视频字节、长期 TURN 密钥 |
| App / 云端 ↔ 设备控制 | MQTT over TLS 1.3(最低 1.2) | 设备主题 ACL、命令 ID、nonce/时间窗、回执状态 | 视频帧、录像分片、明文密码 |
| App ↔ 设备媒体 | WebRTC / DTLS-SRTP | media_session_id、短时 Token、通道、码流档位、有效期 | 可重放的长期播放 URL |
| 设备 ↔ 本地 App | BLE、mDNS、同 LAN / Local HTTPS | 临时会话 Token、证书/指纹校验、物理接近或已绑定证明 | 绕过云端授权的长期管理口令 |
隐私、安全与验收
- 身份和授权:所有直播、回放、PTZ 与本地管理请求都必须校验用户、设备、角色、时间窗和会话令牌;云端不可用时本地访问也不得默认放开。
- 设备防护:设备使用唯一身份、Secure Boot、固件签名和最小开放端口;BLE/本地 API 需要 nonce、防重放与证书/指纹校验。
- 审计最小化:记录访问人(内部 ID)、设备、用途、时间、IP 粗粒度/区域、会话结果与时长;日志中不记录视频 URL、SDP 全文、Token、车牌和 VIN。
- 数据主体权利:撤销共享、解绑、删除账户后拒绝新会话,并在限定时间内终止既有会话;录像留在用户控制的设备介质时,也需明确格式化/转移/回收责任。
端到端验收清单
- MQTT 报文、云端 API 日志、消息队列和数据库中均不存在视频帧、录像分片或缩略图二进制。
- 抓包证明实时媒体仅走 App↔设备 WebRTC(或 App↔TURN↔设备);业务服务无媒体转发带宽。
- 对象存储、CDN 与云端磁盘中没有本模式产生的视频文件;microSD 拔出/格式化后的可见行为符合产品说明。
- App 退出、后台、弱网、权限撤销和设备离线时,直播/回放均在规定时间内停止;客户端文件系统没有缩略图或视频缓存。
- 本地热点、同 LAN、蜂窝远程三种路径均经过授权验证,详见设备本地热点配网与双网并行。