oflyhigh avatar

每天进步一点点:使用树莓派摄像头实现简单的监控功能

oflyhigh

Published: 16 Feb 2023 › Updated: 16 Feb 2023每天进步一点点:使用树莓派摄像头实现简单的监控功能

每天进步一点点:使用树莓派摄像头实现简单的监控功能

这不是规划着可能出去旅游嘛,然后想起去年暑期我在大连旅游时突然连不上家里的所有设备,导致我急匆匆的中断旅行从大连赶了回来。

20230216_094039.jpg

其实连不上家里的设备还好,最可怕的是我不知道家里发生了什么事。我让隔壁的美女邻居以及物业管家都来我家趴窗户看看,可惜挡着窗帘,什么都看不见。

不过好在她们来看过以后,证实我家里的设备并没有起火,这样就放心多啦。但是当时我就在想,如果家里有个摄像头就好了,我可随时监控家里发生了什么情况,就不用过于担心了。

可是暑期旅游回来后,我就一拖再拖,并没有把安装摄像头列上日程,而这次想出去旅游时,想起按摄像头,感觉有些太过于匆忙,毕竟摄像头还没选购,然后还有安装设置等诸多工作,想想就累。

于是我灵机一动,我不是有树莓派嘛,而且当时购买树莓派的时候,我还斥巨资购买了一个摄像头,但是一直懒惰,没用起来。

如果我用树莓派,结合摄像头,做一个网络监控产品,不就解决了我家没有监控摄像头的问题了嘛?还不用额外投资,简直不要更香。

使用树莓派摄像头实现简单的监控功能,听起来很复杂,实际上很简单。

首先,找出我珍藏已久的树莓派摄像头:
20230213_193513.jpg

接下来,找出我珍藏已久的树莓派:
20230213_193346.jpg

其实鼠标、键盘、HDMI线都不是必要的,只是我好久没用,忘记了账户、密码、IP之类的,登录试一下。

之后,把摄像头与树莓派连接好
20230213_203711.jpg

虽然很多教程之类的,都告诉要在树莓派中先设置启用摄像头(sudo raspi-config),但是貌似我这不用启用就可以,可能是我装桌面版的OS,自动就启用了?

然后就可以使用摄像头启用监控功能了,需要说明的是,很多老旧的教程都会使用raspivid,而实际在新版系统中,已经使用libcamera以及相应的工具作为替代,你若是不清楚这点,还按老旧文档弄,可能就会要大费周章了。

生成以及访问视频流

我们可以使用如下指令生成视频流:

libcamera-vid -t 0 --inline --listen -o tcp://<ip-addr>:<port>

其中ip-addr以及port,要换成树莓派的相应IP以及端口,IP也可以直接使用0.0.0.0直接替代。

生成TCP视频流以后,我们可以在VLC播放器中播放,如果你的电脑中没有安装VLC播放器,可以到https://www.videolan.org/ 这个网站下载相应的软件。

安装好软件以后,使用media->Open network stream,并输入相应的地址,比如:

tcp/h264://192.168.1.86:8554

就可以在线查看视频了。

很多软件可能并不支持TCP视频流,使用诸如如下指令,可以将视频转换为RTSP协议流:

libcamera-vid -t 0 --inline -o - | cvlc stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/stream1}' :demux=h264

然后在VLC播放器中输入如下地址,就可以播放视频流了:

rtsp://192.168.1.86:8554/stream1

外网访问

现在我们已经解决了生成视频流以及局域网内访问的问题了。但是如果只能在局域网内访问,或者我只能我在家访问,就失去了监控的意义。毕竟我在家还要毛线监控呀?

所以接下来要解决的就是从外网访问的问题。

这里我使用的是DDNS结合端口转发来实现的,简单地说,通过DDNS获取家里路由器的IP,然后通过端口转发,访问到内网指定设备的指定端口。

这样就解决了外网访问的问题。

但是我实际使用中,RTSP的方式反而不能访问,只能用TCP的方式,算了,懒得深究了。

固定问题

从下图中不难看出,想将摄像头固定好,会是一个难题。
20230213_203711.jpg

我找来找去也没找到粗细适合的螺丝,于是我想了一个办法,用胶带将其固定在酒瓶上:
20230216_094039.jpg

大概这是历史上最夸张的摄像头固定方法了,不过无所谓啦,能解决我的问题就好,夸张就夸张点吧。

其实关于摄像头,还有很多参数可以设置,这样就会得到更为优化的图像,不过对我而言,能用就行了,暂时就不考虑那么多啦。

相关链接

Leave 每天进步一点点:使用树莓派摄像头实现简单的监控功能 to:

Written by

Programmer, Maker, Freelancer, Witness. Make friends, Make money, Make life better!

Read more #cn posts


Best Posts From oflyhigh

We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oflyhigh