这是视频监控开发中最容易混淆的几个概念。RTSP、流媒体服务器、视频解码、Web播放其实分别处于不同的环节。一、一张图看懂整个视频流摄像机 (H.264/H.265编码) │ │ RTSP ▼ 流媒体服务器 (ZLMediaKit、EasyCVR、SRS...) │ ┌───────┼────────┐ │ │ │ ▼ ▼ ▼ RTSP HTTP-FLV WebRTC │ │ │ VLC播放器 浏览器 浏览器可以看到RTSP负责把视频流从摄像机拉出来。流媒体服务器负责接收、转发、转换协议。浏览器不能直接播放 RTSP需要播放 HTTP-FLV、HLS 或 WebRTC 等协议。二、第一步摄像机采集视频摄像机内部完成CMOS │ 采集图像 │ ISP处理 │ H264/H265编码 │ RTSP服务注意摄像机已经完成了视频编码。例如1920×1080 25fps H264摄像机输出的已经不是一张张图片而是H264码流三、RTSP到底是什么RTSP只是告诉摄像机开始发送视频。例如rtsp://admin:123456192.168.1.100/Streaming/Channels/101播放器发送OPTIONS ↓ DESCRIBE ↓ SETUP ↓ PLAY然后摄像机开始发送 H264 H264 H264 ……真正发送的是RTP(H264)不是RTSP。四、为什么浏览器不能播放RTSP浏览器支持HTTP HTTPS WebSocket WebRTC但是不支持RTSP RTP例如videosrcrtsp://...浏览器❌ 不认识因此必须转换。五、流媒体服务器干什么例如摄像机 │ RTSP │ ▼ ZLMediaKit流媒体服务器首先拉流RTSP ↓ 收到RTP ↓ 缓存然后转换协议。例如RTSP ↓ HTTP-FLV或者RTSP ↓ WebRTC或者RTSP ↓ HLS所以流媒体服务器最大的作用就是协议转换Protocol Convert六、什么叫解码很多新人认为流媒体服务器一定要解码。实际上绝大多数时候不用。例如摄像机H264服务器收到H264 ↓ 直接转封装例如RTSPRTP ↓ H264HTTP-FLVFLV ↓ H264这里只是换盒子 不换里面的视频专业叫Remux转封装没有H264 ↓ 图片 ↓ H264所以CPU几乎不耗。七、什么时候需要解码例如做人脸识别。必须H264 ↓ 解码 ↓ 图片(Frame) ↓ AI识别流程RTSP ↓ H264 ↓ FFmpeg解码 ↓ RGB ↓ OpenCV ↓ AI这里CPU会很高。因为解码非常耗资源。八、什么时候需要重新编码例如AI画框。流程RTSP ↓ 解码 ↓ 识别人脸 ↓ 画框 ↓ 重新编码 ↓ 播放这里需要H264 ↓ 图片 ↓ 画框 ↓ H264所以CPU最高。九、浏览器为什么能播放例如ZLMediaKit收到RTSP输出HTTP-FLVhttp://server/live/test.flv浏览器flv.js ↓ 播放WebRTC浏览器WebRTC ↓ 直接播放延迟100ms左右。HLS浏览器m3u8 ↓ 播放延迟5~15秒。十、为什么Java一般不用RTSP直接给前端例如Java返回 rtsp://...Vuevideo标签结果不能播放因为浏览器不会RTSP。所以正确流程Java ↓ 调用流媒体服务器 ↓ 获得 http://...live.flv 或者 webrtc://...返回前端flv.js ↓ 播放十一、智慧园区项目的真实架构你之前一直在做海康智慧园区Java后台一般都是下面这种架构海康IPC │ RTSP拉流 │ ┌──────────┴──────────┐ │ │ ▼ ▼ ZLMediaKit AI分析服务 │ │ │ FFmpeg解码 │ │ │ 人脸识别 │ ├────────HTTP-FLV────────► Vue(fl v.js) │ ├────────WebRTC──────────► Vue(WebRTC) │ └────────HLS─────────────► 手机浏览器其中RTSP负责从摄像机获取视频流。流媒体服务器负责拉流、缓存、协议转换、转发通常不解码。AI 分析服务如果需要做人脸识别、车牌识别等会对视频进行解码再进行算法分析。Web 前端播放的是 HTTP-FLV、WebRTC 或 HLS而不是 RTSP。十二、四者的职责对比组件作用是否解码CPU消耗Web是否可直接播放RTSP摄像机输出实时视频流❌很低❌流媒体服务器拉流、缓存、协议转换、转发通常❌转封装低通过转换后可以FFmpeg/OpenCV 解码将 H.264/H.265 解码成图像帧✅高不直接用于播放HTTP-FLV / WebRTC / HLS浏览器可播放的视频协议与协议本身无关低播放端负责解码✅一句话总结RTSP摄像机说话的协议。流媒体服务器视频翻译和中转站负责协议转换和分发通常不解码视频。解码把压缩的视频码流还原成图像帧供 AI 分析或图像处理使用。Web 播放浏览器不能直接播放 RTSP因此需要流媒体服务器将 RTSP 转换为 HTTP-FLV、WebRTC 或 HLS 等浏览器支持的协议。