N1刷机避坑指南 篇十:Homeassistant更新进展,Docker下安装mjpg-streamer,USB摄像头
本文一共2353字,13图。
前言
最近一直想不通一件事情,就是罗技的C270usb摄像头,明明是UVC协议支持的,但是在armbian 5.62以及其他版本中无论如何也无法开启摄像头,也可能是我自己的问题,后来发现5.62版本的armbian内核没有配置usb video,如果要启用,可能需要重新编译内核。
作为懒人的我,当然不会去学编译内核,所以我找了其他版本的固件,最新20.02版本(其它版本应该也可以:除5.62)的armbian是可以使用USB摄像头的。本文主要写在docker下使用mjpg-streamer接入homeassistant。
目录
一、安装Docker(如果有docker,可直接跳过第一步)
二、拉取Mjpg-streamer镜像
三、运行Mjpg-streamer镜像
四、配置mjpg-streamer到homeassistant
五、总结
一、安装Docker(如果有docker,可直接跳过第一步)
方法一:
首先,可以根据我之前的文章来安装armbian,注意要修改dtb文件指向。然后参考这gezilaozhang的这篇文章。
方法二:
请参考米V米的这篇文章。
Docker的安装,本文不做详细介绍。如有需要,可以单独开篇。
二、拉取Mjpg-streamer镜像
这里给出两个命令,分别是小钢炮的和armbian的,因为ailispaw的mjpg-streamer有两个tag,armbian要带上arm64v8标签。
小钢炮:
docker pull ailispaw/mjpg-streamer
armbian:
docker pull ailispaw/mjpg-streamer:arm64v8
后者的镜像速度可能比较慢,mjpg-streamer镜像(提取码:2g60),请从我的百度网盘链接下载镜像,然后手动上传。
Images界面选择Import。
然后点击Select file。
选择网盘下载的镜像文件,tar格式。
然后点击Upload,等待一段时间提示成功即可,然后在Images界面就可以看到镜像了。
三、运行Mjpg-streamer镜像
其实安装也就是一句命令而已,但之所以单独讲,还是因为我弯路走太多了,5.62内核不支持uvcvideo,后面的版本我最开始也是直接安装docker,然后拉取mjpg-streamer镜像,因为小钢炮使用默认命令就直接能打开摄像头,也导致我认为默认命令是正确的。
不过小钢炮应该是没有虚拟视频设备,所以dev里的video0和docker的video0直接对应,但armbian有虚拟视频设备,所以一般情况下video1才是视频获取地址。所以要把video1映射到docker的video0。
具体命令如下:
docker run -d --device=/dev/video1:/dev/video0 -p 8080:8080 ailispaw/mjpg-streamer:arm64v8
端口可以把前面的8080改成你喜欢的端口,video1是你实际摄像头的设备。
运行成功后,可以打开IP:8080地址来看。
至此,USB摄像头已经可以成功在docker下运行,接下来配置homeassistant就可以了。
四、配置mjpg-streamer到homeassistant
把mjpg-streamer的摄像头接入到Ha非常简单,只需要在配置文件加入这几句话就可以了,注意,请替换自己的IP地址,并且严格按照yaml语法,最好使用notepad来编辑,避免出现编码错误。
camera:
- platform: mjpeg
mjpeg_url: http://192.168.3.236:8080/?action=stream
name: logitech_camera
配置完成后,重新启动homeassistant,然后在概览界面就可以看到摄像头了,默认是静态的,点击就会变成视频流了。
至此,在家中局域网内,你就可以通过ha的主页来查看视频流了,通过视频流,你也可以做很多事情,人脸识别等等都不在话下,唯一的问题是N1的性能可能会吃不消,我没有用720P,默认应该是640*480的。
另外,如果想要通过苹果手机查看视频的话,需要安装homebridge,ha自带的homkit不支持视频。后续我会写怎么配置。
还有一点我比较担心的是N1的性能,以下是运行了4个镜像的N1。
负载情况。
看样子还行,就是温度有点高,夏天到了。
五、总结
USB摄像头其实是我很早想做的事情,但是之前走了弯路,被5.62坑害了,早期的armbian系统内核配置并不完善,很多功能模块都没有配置,所以导致USB摄像头无法实现,只有灯大的小钢炮系统支持,灯大说是根据官方amlogic内核编译的,armbian是有armbian官方内核的。不过后面的armbian内核上更完善了,但我在docker的命令上又吃了亏,docker下的device和外部的device是不一样的,需要映射,也就是把外部的device1映射到docker的device0上,可以看我上面docker的启用命令。
摄像头要符合UVC,可以在这个网址查看。
http://www.ideasonboard.org/uvc/#footnote-11
小钢炮可以运行也是凑巧,它没有虚拟视频设备,所以device0就是摄像头数据,而armbian里device1才是正确的摄像头数据。
下一篇我会考虑把摄像头数据通过homebridge接入,然后通过手机的家庭来进行查看摄像头数据,其实我只是想观察宝宝睡觉的情况,哈哈哈,至于人脸识别系列,可以网上找一下,有人做过的,后期有时间我会做,五一人工孵化了3只小麻雀,最近需要养大宝宝和鸟宝宝,哈哈哈。
下次见。
我是MEMOL。
值友7509716043
校验提示文案
OnLeaks
校验提示文案
ICODER
校验提示文案
值友2645513134
校验提示文案
ICODER
校验提示文案
值友2645513134
校验提示文案
OnLeaks
校验提示文案
值友7509716043
校验提示文案