










第一次接触到 RTSP 这个词,刚开始看到:
rtsp://192.168.1.100:554/xxx
感觉非常复杂。
其实理解以后会发现,RTSP 并没有那么难。
对于刚接触摄像头的人来说,可以先记住一句话:
RTSP 就是让程序获取摄像头实时视频的一种方式。
假设教室里有一个摄像头。
摄像头一直在拍摄:
第1秒画面
第2秒画面
第3秒画面
第4秒画面
……
我们现在有一台 Linux 服务器,希望这台服务器也能看到摄像头的实时画面。
如果摄像头支持 RTSP,就相当于摄像头给我们提供了一个:
实时视频入口。
例如:
rtsp://192.168.1.100:554/xxx
Linux 服务器通过这个地址,就可以尝试获取摄像头的视频。
所以最简单的理解就是:
摄像头
↓
RTSP
↓
Linux服务器
翻译成人话:
Linux 服务器通过 RTSP,把摄像头正在拍的视频拿过来。
平时打开网页,我们会看到:
https://www.example.com
这个地址对应的是网页。
而 RTSP 地址可能长这样:
rtsp://192.168.1.100:554/xxx
它对应的通常是:
摄像头实时视频。
所以可以粗略理解成:
https://
↓
访问网页
rtsp://
↓
访问实时视频
当然两者实际上不是同一种协议,但对于第一次接触的人,这样理解最容易。
假设有一台网络摄像头。
摄像头的信息是:
IP:192.168.1.100
用户名:admin
密码:123456
摄像头厂家告诉我们,它的 RTSP 地址是:
rtsp://admin:123456@192.168.1.100:554/xxx
Linux 服务器访问这个地址以后,就可以不断获取摄像头正在拍摄的视频。
整个过程就是:
摄像头
192.168.1.100
↓
RTSP
↓
Linux服务器
↓
获取实时视频
这才是 RTSP 真正有用的地方。
拿到摄像头视频以后,我们可以做很多事情。
摄像头
↓
RTSP
↓
服务器
↓
网页
↓
实时查看
例如开发一个学校摄像头管理平台:
101教室 查看视频
102教室 查看视频
103教室 查看视频
点击“查看视频”,就可以看到这个教室的实时画面。
服务器拿到 RTSP 视频以后,也可以保存。
例如:
08:00 - 09:00
保存成:
2026-08-22-08-00.mp4
也可以每10分钟保存一个文件:
08:00-08:10.mp4
08:10-08:20.mp4
08:20-08:30.mp4
所以:
RTSP 不只是可以看,还可以把视频保存下来。
例如学校想分析课堂情况。
可以这样:
摄像头
↓
RTSP
↓
服务器
↓
AI
AI 拿到视频以后,可以继续分析:
有没有学生
有多少学生
有没有人离开座位
有没有伏桌
有没有举手
所以 RTSP 本身不负责 AI。
它只是负责:
把摄像头的视频送到我们的程序。
这是我认为最好理解的方式。
假设:
摄像头 = 水龙头
视频 = 水
RTSP = 水管接口
Linux服务器 = 接水的人
那么整个过程:
水龙头
↓
水管
↓
接水
对应到摄像头:
摄像头
↓
RTSP
↓
Linux服务器
所以当开发人员说:
“我们需要拉一下 RTSP 流。”
其实可以直接翻译成:
“我们需要把摄像头的实时视频拿过来。”
这样就容易理解了。
第一次接触视频开发,还经常会听见一个词:
拉流
其实也非常简单。
“流”就是不断传输的视频。
例如:
画面1
画面2
画面3
画面4
画面5
……
摄像头的视频不是一次性传完,而是在不停地产生。
服务器持续获取这些视频,就叫:
拉流。
所以:
拉 RTSP 流
翻译成人话就是:
通过 RTSP 持续获取摄像头实时视频。
不是。
这点非常重要。
有些专业网络摄像头支持:
RTSP
ONVIF
GB28181
这种比较方便第三方系统接入。
但是有一些家用摄像头可能只能:
摄像头
↓
厂家云平台
↓
厂家APP
虽然手机 APP 可以看到视频,但是不代表第三方程序一定能够获取视频。
所以购买或者调研摄像头时,可以直接问厂家:
这个型号是否支持 RTSP?
如果支持,再问:
RTSP 地址是什么?
这个地址通常不是自己随便写的。
不同厂家的格式可能不一样。
例如一个 RTSP 地址可能类似:
rtsp://用户名:密码@摄像头IP:554/视频路径
例如:
rtsp://admin:123456@192.168.1.100:554/xxx
这里可以简单理解:
admin
↓
摄像头用户名
123456
↓
摄像头密码
192.168.1.100
↓
摄像头IP
554
↓
RTSP常用端口
xxx
↓
厂家规定的视频路径
真正使用时,要根据具体摄像头品牌和型号查询说明书。
Linux 上可以安装一个非常常用的视频工具:
FFmpeg
可以把 FFmpeg 简单理解成:
Linux 上用来处理视频的工具。
关系就是:
摄像头
↓
RTSP地址
↓
FFmpeg
↓
Linux服务器
例如拿到 RTSP 地址以后,可以使用 FFmpeg 或 ffprobe 测试视频是否能够读取。
如果成功看到:
H264
1920x1080
25 fps
就说明:
Linux 已经成功获取到摄像头视频。
假设学校有100个教室。
每个教室都有摄像头。
以前可能需要使用不同摄像头厂家的 APP:
101教室 → APP A
102教室 → APP A
201教室 → APP B
301教室 → APP C
使用起来非常麻烦。
如果这些摄像头能够提供 RTSP 视频,我们就可以开发自己的平台:
101摄像头 ─┐
102摄像头 ─┤
103摄像头 ─┤
201摄像头 ─┤
301摄像头 ─┤
↓
我们的服务器
↓
统一视频平台
用户以后只需要打开一个系统:
一号教学楼
101教室 ● 在线 查看视频
102教室 ● 在线 查看视频
103教室 ● 在线 查看视频
二号教学楼
201教室 ● 在线 查看视频
202教室 ● 在线 查看视频
这样就不需要频繁切换各种摄像头 APP 了。
如果只记住三句话,就记下面这三句。
第一句:
RTSP 是获取摄像头实时视频的一种常见方式。
第二句:
所谓“拉 RTSP 流”,就是服务器持续获取摄像头正在拍摄的视频。
第三句:
视频拿到以后,可以实时观看、保存录像,也可以交给 AI 做分析。
所以整个过程可以简化成:
摄像头
↓
RTSP
↓
Linux服务器
↓
┌───────────┬───────────┬───────────┐
↓ ↓ ↓
实时观看 保存录像 AI分析
对于刚接触摄像头开发的人来说,先理解到这里就已经足够了。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。