在之前的帖子中说过,虽然要将树莓派4B打造成我的工作助手,但是监控功能还是要保留的,不然以我拖延的性格,也许100年内不会去购置安装室内监控摄像头。
而且我这个树莓派监控系统虽然用的少,但是全家出门旅游(或者回老家等)时用来查看一下家中的状态还是非常有用的。
之前有一年寒假我们全家去三亚旅游,这个监控系统就立下了汗马功劳。当时家里养着一堆芦丁鸡,我给它们备足了水和食物,但是还是怕发生它们炸窝或者飞出养殖箱之类的事情。
有了这个监控系统,我就每天晚上查看一下,看到芦丁鸡们还都好好的在养殖箱里悠闲地散步,我就放下心来,能睡个安稳觉,也能享受个悠闲的度假时光了。
魔法失灵啦?
闲话少叙,虽然之前在Raspberry Pi OS with desktop,我的监控系统能正常的工作,但是将系统由原来的Debian 11 (bullseye)刷到Debian 13 (trixie),且由桌面版变成了Lite版,相应的功能还能否好用,我是真的一点信心都没有。
直接执行一下相应的指令试试看:
libcamera-vid -t 0 --inline --listen -o tcp://<ip-addr>:<port>
结果提示我
-bash: libcamera-vid: command not found
这问题好办呀,我最擅长解决了,缺啥装啥呗,据说libcamera-vid在libcamera-apps包中,先装上试试看?结果我又发现有个libcamera-apps-lite,据说是个精简版的相机应用集合,包含我需要的libcamera-vid。
那就装上呗:sudo apt install libcamera-apps-lite
。结果装完后问题依旧存在。
那咱就装完整版的sudo apt install libcamera-apps
,这家伙可好,还有一大堆依赖:
虽然觉得很离谱,但是为了让摄像头好用,就是哐哐一通装!结果装完后依旧是找不到libcamera-vid
,这可难住了我呀!
新的魔法书
怎么办?问题到底出在哪里呢?我百思不得其解!最后决定还是去官网找找资料看吧,结果就被我找到这么一句:
Raspberry Pi OS Bookworm renamed the camera capture applications from libcamera-* to rpicam-. Symbolic links allow users to use the old names for now. Adopt the new application names as soon as possible. Raspberry Pi OS versions prior to Bookworm still use the libcamera- name.
简单来讲就是新版的系统中,人家改名字啦,从libcamera-*
改为rpicam-*
,Raspberry Pi OS Bookworm中可以用符号链接来使用之前的名字,而貌似Raspberry Pi OS Trixie(我当前的版本)连符号链接都取消啦。
知道了原因问题也就迎刃而解了,有两种解决方案:一种是自己创建相应的符号链接;另一种方案就是直接使用新的应用名称喽。显而易见地,直接用新命名是最优解!
直接用新名字执行上述指令:
rpicam-vid -t 0 --inline --listen -o tcp://0.0.0.0:8554
之后在VLC播放器中,使用media->Open network stream
,打开相应地址的视频流,比如tcp/h264://192.168.1.86:8554
,就可以播放来自树莓派摄像头的视频啦。
优化设置(画质)
虽然上述指令配合VLC播放器已经能满足我的需求,但其实可以通过调整摄像头采集用的分辨率、采集帧率来使图片更清晰或者网络传输更顺畅。
查看一下摄像头支持的分辨率以及帧率:
rpicam-vid --list-cameras
返回如下数据:
我们可以通过类似如下指令来指定分辨率(或者叫解析度更好一些?)
rpicam-vid -t 0 --width 640 --height 480 --listen -o tcp://0.0.0.0:8554
或者
rpicam-vid -t 0 --width 1640 --height 1232 --listen -o tcp://0.0.0.0:8554
经过测试发现,--width 1640 --height 1232
时,摄像头照到的房间面积最大,最符合我的要求呢。
可以通过添加--framerate 30
参数来设置帧率,帧率越低越卡,越高越平滑(但是对网络质量要求会比较高)。
还可以用-n
参数来关闭预览功能,我用的是Raspberry Pi OS Lite,并无桌面,实际上也没法预览,故而应该一直关闭。
所以,对我而言,最适合的指令如下:
rpicam-vid -t 0 -n --width 1640 --height 1232 --framerate 30 --listen -o tcp://0.0.0.0:8554
实际效果就不演示啦,家里乱糟糟的😀
感慨
折腾了一两天终于搞定了这个摄像头,但竟然卡在libcamera-vid
找不到这个问题上好久,没想到竟然是新版本改了名字的缘故。
解决问题之后,再看我好久之前弄这个树莓派监控系统时写的一段话:
需要说明的是,很多老旧的教程都会使用raspivid,而实际在新版系统中,已经使用libcamera以及相应的工具作为替代,你若是不清楚这点,还按老旧文档弄,可能就会要大费周章了。
没想到,时隔三年多,我竟然也为了这个问题大费周章,而我其实早该想一下新版本应用改名的问题或者第一步就应该去官网看文档!
懒惰的人继续用三年前的封面图,突然想到,或许我应该给这个摄像头弄个简易的云台,然后再用树莓派控制云台旋转,那我岂不是可以360度无死角监控啦?咦,貌似这个主意不错呀。
发现一组树莓派中文文档,貌似还不错:
人工置顶
嗷嗷嗷,树莓派这个摄像头好酷啊,想买怎么办?😭
买?不买?买?。。。。结果买了吗?
等钱包鼓起来的
👍🤞😎
买买买,好像快双十一了,会有活动吗
这些比较小众的东西,一般都没促销
额 感觉这是我 哈哈哈~ 高科技饲养芦丁鸡 ,真的很厉害啊!
呜呜呜
可惜芦丁鸡最后都被我养死了。
好怀念你可爱的芦丁鸡
呜呜呜
记录一下
使用如下参数
--width 3280 --height 2464
输出视频流失败记住了,树莓派监控摄像头。
哈哈,其实没有啥记住的必要
看上去象是很专业的,我买了个简易的摄像头,专门盯我儿子写作业的,跟O哥这个没法比😆
再简易的摄像头也比我这个先进,毕竟是成品
程序员o哥又上线啦
额
这些技能对于O哥是魔法书,我看那些英文字母简直是天书
大佬,请受小弟一拜
见笑了,我也是菜鸟啦
我发现O哥是万能的👍。你怎么啥都会?太牛了👍,嘎嘎牛👍
假设我买了树莓派摄像头,我也不会用啊🤣
这个摄像头尺寸很小,如果做隐形摄像头,也太绝了。哈哈,小偷进屋都察觉不到,结果全程都被录了下来😄