为什么协议选型会影响项目成败
私有化视频项目里,协议不是单纯的技术细节。协议决定摄像头能否接入、浏览器能否播放、端到端延迟能否接受、现场端口是否容易开放、国标平台能否级联,以及现场排障时能否快速定位问题。
很多项目一开始只问“支持不支持 RTSP 或 GB28181”,真正部署时才发现还要考虑浏览器播放、录像回放、网络隔离、NAT、防火墙、SRT 回传、移动端播放和业务系统接口。更稳妥的做法是先按链路拆开:输入源用什么协议、本地网关如何管理、输出给谁、用户在哪里观看、是否需要录像和回放。
常见协议的工程定位
| 协议 | 更常见的位置 | 典型用途 | 主要注意点 |
|---|---|---|---|
| RTSP | 摄像头 / NVR 输入 | 局域网摄像头取流、低延迟预览 | 浏览器不能直接播放,通常需要网关转换或分发 |
| ONVIF | 设备发现与控制 | 搜索设备、获取 RTSP 地址、云台(PTZ)、设备信息 | ONVIF 不是播放协议,实际媒体通常仍走 RTSP |
| RTMP | 推流或服务端输入 | 编码器、桌面软件、老直播链路 | 浏览器原生支持弱,常作为上游输入或中间协议 |
| HTTP-FLV / WS-FLV | 浏览器播放输出 | 内网 Web 预览、低延迟播放 | 需要浏览器播放器和网关分发 |
| HLS | 浏览器/移动端播放输出 | 兼容性优先、延迟要求不高的观看 | 延迟通常更高,适合回看或低实时要求 |
| WebRTC | 浏览器低延迟播放 | 低延迟预览、指挥大屏、互动类链路 | 对网络、证书、端口和浏览器环境更敏感 |
| SRT | 跨网回传 / 传输 | 弱网、远程点位、编码器回传 | 需要两端都支持 SRT,并确认端口与模式 |
| GB28181 | 国标联网 | 上下级平台、目录、注册、INVITE、级联 | 信令和媒体会话复杂,需要真实平台互通验证 |
摄像头接入优先看 RTSP、ONVIF 和 GB28181
安防摄像头和 NVR 最常见的是 RTSP 取流。ONVIF 负责发现设备、读取 Profile、拿到 RTSP 地址和做部分控制;它解决的是设备管理问题,不替代媒体播放链路。
如果项目对接公安、园区、行业平台或已有国标系统,就需要 GB28181。GB28181 不只是一个播放地址,它包含注册、保活、目录、控制、INVITE 调看和 PS/RTP 媒体发送等完整流程。选型时要确认角色是“下级设备/平台接入上级平台”,还是“作为上级平台接入下级设备”,两者工作量和验证方式不同。
浏览器播放优先看 WebRTC、HTTP-FLV、HLS
浏览器不能直接播放普通 RTSP 摄像头流。实际项目通常让网关先接入 RTSP / ONVIF / GB28181,再输出浏览器可播放的地址。
如果项目重视低延迟预览,可以优先看 WebRTC 或 HTTP-FLV / WS-FLV。如果项目更重兼容性、录像回看或跨端播放,可以使用 HLS。这里没有绝对最优协议,只有更适合的观看场景。
StreamCore SDK 和 StreamGate 的协议分工
StreamCore SDK 适合嵌入客户自己的软件,例如桌面客户端、移动端 App、服务端程序或专用设备软件。它关注的是 API、会话、回调、解码、渲染、推流和 GB28181 设备侧能力。
StreamGate 适合部署为现场网关。它关注的是设备接入、通道管理、浏览器播放、录像检索回放、开放接口、国标上联和运维诊断。项目里如果需要“装上就能管理一批摄像头”,优先评估 StreamGate;如果需要“把能力集成进自己的程序”,优先评估 StreamCore SDK。
选型建议
- 现场摄像头接入:优先确认 RTSP、ONVIF、GB28181。
- 浏览器观看:确认 WebRTC、HTTP-FLV、HLS 的延迟和兼容性。
- 远程回传:确认 SRT 或已有 RTMP / RTSP 输入链路。
- 国标项目:先明确上下级角色、目录规模、INVITE 媒体方向和真实平台。
- 商用授权:把协议能力、平台、通道数、部署机器和维护周期一起确认,避免只按单个协议报价。
选型落地检查
在真实项目里,协议选型不要只看单个名词,而要把输入、管理、输出、观看和录像回放连成一条完整链路。摄像头侧通常优先确认 RTSP、ONVIF 和 GB28181;浏览器观看侧确认 WebRTC、HTTP-FLV、HLS 或 WS-FLV;跨公网或弱网回传再评估 SRT。这样可以避免“设备接得进来,但业务端看不了”或“浏览器能看,但现场无法级联”的情况。
如果项目同时包含摄像头接入和软件集成,可将网关和 SDK 分开评估。StreamGate 更适合部署在现场服务器上统一接入、录像、浏览器播放和接口对接;StreamCore SDK 更适合嵌入桌面端、服务端或移动端软件,直接提供播放、采集、推流和国标注册等能力。两者可以独立使用,也可以在同一项目里分别承担现场接入和客户端能力层。
