前景概述
最近项目中需要用到“网页实时预览网络摄像头”功能,通过查阅海康大华等厂家的API文档,发现这些厂家的demo均不满足需求;要么仅支持低版本浏览器、要么就是需要支持websocket的摄像头。
功能特点
- 跨平台支持(windows、linux、Unix)
- 网页后台管理(内置管理平台)
- 无延迟
- 支持新版浏览器
- 开销低
- 支持HTTP接口管理
效果
话不多说,直接上图!!!
http接口管理
流列表接口
/api/stream/list
1 { 2 "code": 0, 3 "data": { 4 "Total": 2, 5 "Data": [ 6 { 7 "ID": "1A97516B-48A8-1D69-CAE9-7BEF4E93E036", 8 "Name": "抓拍机", 9 "DevType": "0", 10 "RTSP": "rtsp://10.202.2.60:8556/h264", 11 "PlayType": "1", 12 "UpdateTime": "2021-10-25T13:53:47.6553697+08:00" 13 }, 14 { 15 "ID": "92A74D53-FD12-FA1D-9D99-597681B9CBEC", 16 "Name": "海康摄像头", 17 "DevType": "1", 18 "RTSP": "rtsp://admin:123456@10.202.2.170/Streaming/Channels/202", 19 "PlayType": "1", 20 "UpdateTime": "2021-10-25T13:54:04.8912719+08:00" 21 } 22 ] 23 }, 24 "msg": "获取成功" 25 }
实现过程
- 在这套视频插件的过程中,踩了很多坑,也浪费了不少时间。
- 想必在你看到我这篇文章的时候,自己也尝试过使用ffmpeg、obs、nms、websocket了,结果不是很理想,要么开销大、要么延迟高。
- 我尝试过使用nms服务器用ffmpeg推流,最完美可以达到1秒的延迟。但是这相对于实时监控来讲,延迟太高了。
- 文中这套方案采用的是webrtc方式,使用rtsp插件直接拉流,将视频流通过webrtc发到前端。
- 如果您有这类的需求,可通过本站发送私信与我进行联系交流