最近一直在打造 AI 对话机器人:
项目基于移动端 arm 开发板,不得不说,这方面的需求还真不少。
前两天把摄像头接入了进来,一位家中有娃的粉丝朋友问:能否远程查看摄像头的监控画面,这样就可以随时查看孩子的活动了。
必须能!不仅可以实时查看视频,还可以通过我们之前打造的微信AI机器人,将发现的异常情况,实时通报到你的微信端。
PS:有类似需求的小伙伴,欢迎通过公众号链接我。
今日分享,就带大家实操:如何实现远程访问摄像头的监控数据。
1. 流媒体是如何传输的
要实现远程访问,当然离不开网络!
相信大家都听说过 HTTP(超文本传输协议),HTTP 主要用于在Web上传输超文本(如HTML),它是Web的基础协议。
和 HTTP 类似,流媒体传输协议主要有两种:RTSP(Real-Time Streaming Protocol)和 RTMP(Real-Time Messaging Protocol)
这哥俩有什么区别么?
传输方式
RTSP:通常通过UDP或TCP传输,适合实时应用,延迟较小。
RTMP:主要通过TCP传输,确保数据的可靠性,在处理高并发流时表现良好。最初由Adobe开发,用于Flash播放器。
应用场景
RTSP:常用于监控摄像头、视频点播等场景。
RTMP:广泛用于直播流媒体(如 YouTube 等)。
如何利用这两种协议成功实现推流呢?
下面我们介绍两种方法:
Nginx 实现 RTMP 推流
MediaMTX 实现 RTSP/RTMP 推流
2. Nginx 实现 RTMP 推流
Nginx 不支持 RTSP 推流,只有在安装 RTMP 支持后,才可以转发 RTMP 的数据。
2.1 安装 Nginx 和 RTMP 支持
Nginx 是啥?如何安装?不了解的小伙伴,可参考猴哥这篇教程:免费域名注册 & Cloudflare 域