智慧园区、安防监控、视频平台,音视频技术并不需要全部精通,但需要建立完整的知识体系。下面按照实际项目中的数据流来介绍。
一、完整的音视频技术栈
摄像机
│
▼
视频采集
│
▼
视频编码(H264/H265)
│
▼
RTSP/GB28181/RTMP
│
▼
流媒体服务器(ZLMediaKit、SRS...)
│
▼
协议转换(WebRTC、FLV、HLS)
│
▼
浏览器播放
整个过程中涉及的技术可以分为几个部分。
二、视频采集
来源包括:
- IPC 摄像机
- USB 摄像头
- 手机摄像头
- 无人机
- 视频文件
采集到的是:
原始图像(Frame)
例如:
1920×1080
RGB
YUV
这时候数据量非常大。
例如:
1080P
RGB
一秒25帧:
1920×1080×3×25
≈150MB/s
因此必须编码。
三、视频编码(Codec)
编码器负责:
压缩视频。
常见:
| 编码 | 特点 |
|---|---|
| H.264 | 最普及 |
| H.265(HEVC) | 更省带宽 |
| AV1 | 新一代编码 |
| VP8 | WebRTC |
| VP9 | YouTube 常用 |
例如:
原始:
150MB/s
编码后:
2Mbps
可以理解成:
ZIP 压缩。
四、音频编码
常见:
| 编码 | 用途 |
|---|---|
| AAC | 最常见 |
| G711 | 安防 |
| G726 | IPC |
| Opus | WebRTC |
| MP3 | 音乐 |
很多摄像机:
视频
H264
音频
G711
五、封装格式(Container)
编码不是文件。
需要:
封装。
例如:
H264
↓
MP4
常见封装:
| 封装 | 用途 |
|---|---|
| MP4 | 最常见 |
| FLV | 直播 |
| TS | HLS |
| MKV | 高清 |
| AVI | 老格式 |
例如:
MP4
里面
视频:H264
音频:AAC
六、流媒体协议
视频如何发送?
常见协议:
| 协议 | 场景 |
|---|---|
| RTSP | 摄像机 |
| RTP | 视频数据 |
| RTMP | 推流 |
| HLS | 浏览器直播 |
| WebRTC | 超低延迟 |
| HTTP-FLV | Web直播 |
| SRT | 广播电视 |
例如:
摄像机:
RTSP
OBS:
RTMP
浏览器:
WebRTC
HLS
HTTP-FLV
七、流媒体服务器
作用:
- 拉流
- 推流
- 转协议
- 转封装
- 录像
- 分发
常见:
| 产品 | 特点 |
|---|---|
| ZLMediaKit | 安防最火 |
| SRS | 直播 |
| EasyCVR | 视频平台 |
| Live555 | RTSP |
| Nginx-RTMP | RTMP |
例如:
RTSP
↓
HTTP-FLV
就是:
流媒体服务器完成。
八、解码(Decoder)
什么时候需要?
例如:
做人脸识别。
流程:
H264
↓
解码
↓
图片
使用:
- FFmpeg
- OpenCV
得到:
RGB
YUV
九、转码(Transcoding)
例如:
摄像机:
H265
浏览器:
不支持。
需要:
H265
↓
解码
↓
重新编码H264
这叫:
转码。
CPU消耗最高。
十、播放器
PC:
- VLC
- PotPlayer
浏览器:
- video
- flv.js
- hls.js
- WebRTC
Android:
- ExoPlayer
iOS:
- AVPlayer
十一、浏览器播放技术
浏览器:
不能播放:
RTSP
可以播放:
| 技术 | 延迟 |
|---|---|
| WebRTC | 100ms |
| HTTP-FLV | 1秒 |
| HLS | 5~20秒 |
十二、AI视频分析
流程:
RTSP
↓
FFmpeg
↓
解码
↓
OpenCV
↓
YOLO
↓
人脸
↓
车辆
↓
行为分析
这里:
AI需要的是:
图片。
不是:
H264。
十三、GPU硬件加速
CPU:
软件编码。
GPU:
硬件编码。
例如:
NVIDIA:
- NVENC(编码)
- NVDEC(解码)
Intel:
- Quick Sync
海思:
- VENC
- VDEC
这样:
1080P
几十路视频:
GPU即可完成。
十四、智慧园区常见架构
摄像机
│
RTSP/GB28181
│
┌───────────┴────────────┐
│ │
▼ ▼
流媒体服务器 AI分析服务
(ZLMediaKit/EasyCVR) (FFmpeg+OpenCV+YOLO)
│ │
│ ▼
│ 人脸识别
│ 车牌识别
│ 行为分析
│
▼
Java后台(Spring Boot)
│
▼
Vue前端
(flv.js / WebRTC / hls.js)

2350

被折叠的 条评论
为什么被折叠?



