RTSP
RTSP 浏览器播放边界与转换方案
解释为什么浏览器不能直连 RTSP,以及 RTSP 转 WebRTC、HLS、HTTP-FLV 的实际测试路径。
网页能否直连
需转换
链路位置
摄像头源站协议
浏览器结论
不能浏览器直连
一句话结论
RTSP 是摄像头和 NVR 很常见的源地址,但不是网页播放地址。开发网页播放器时,RTSP 通常放在服务端接入层,不能直接交给浏览器播放。
它在视频链路里的位置
RTSP 负责控制摄像头媒体会话,真实音视频通常走 RTP。浏览器没有内置 RTSP/RTP 播放入口。
项目里常见结构是:摄像头 RTSP -> 媒体服务器 -> HLS/WebRTC/HTTP-FLV -> 浏览器。
在浏览器项目里怎么用
前端可以识别 rtsp:// 并提示用户需要转换,但不能用 video、hls.js 或 mpegts.js 直接播放 rtsp://。
如果 RTSP 地址是 192.168.x.x、10.x.x.x 或 172.16-31.x.x,云端网页通常也访问不到。转换服务必须部署在能访问摄像头的网络里。
服务端需要做什么
服务端要先验证 RTSP 账号、密码、端口、通道路径和 TCP/UDP 模式,再把流转成网页能用的输出。
低延迟选 WebRTC,兼容播放选 HLS,内网工程预览可选 HTTP-FLV 或 WS-FLV。
常见开发场景
- IP 摄像头预览、NVR 通道接入、园区监控、设备安装调试。
- 适合后端可控制网络环境、能部署媒体服务的项目。
排查顺序
- 先在媒体服务器所在机器用 VLC 或 ffprobe 测 RTSP 是否能打开,不要先怀疑浏览器。
- 再查认证、通道路径、TCP/UDP、摄像头并发连接数、内网访问和防火墙。
推荐转换路径
- 实时预览:RTSP -> WebRTC/WHEP。
- 公开分发:RTSP -> HLS/m3u8。
- 内网低延迟:RTSP -> HTTP-FLV 或 WS-FLV。
最小可用实现
- 前端:输入 rtsp:// 后显示“需要服务端转换”,并允许用户填转换后的 HLS/WebRTC/FLV 地址播放。
- 后端:用媒体服务器接入 RTSP,暴露一个网页播放 URL,并返回可读的错误原因。
开发者判断标准
RTSP 不能只按名字判断是否可播,要看它在链路中承担的是源站输入、网页播放输出、低延迟会话,还是网络辅助能力。当前浏览器结论:不能浏览器直连。落地前需要确认真实源站、是否需要服务端转换、CORS/HTTPS 策略、编码支持和延迟目标。