Homeassistant更新进展,Docker下安装mjpg-streamer,USB摄像头

Homeassistant更新进展,Docker下安装mjpg-streamer,USB摄像头

2020-05-06 21:18:58 16点赞 107收藏 9评论

本文一共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的这篇文章。

斐讯N1刷Armbian后如何安装Docker,换软件源并提速?_斐讯盒子_ZNDS斐讯盒子斐讯N1刷Armbian后如何安装Docker,换软件源并提速?,教程来源:Mozzie网络环境所限,在使用Armbian的时候经常下载软件出问题,下载不到或者下载中断,所以找来了国内的源,更换一下,下载会变快很多。假定armbian已经安 ...www.znds.com去看看

方法二:

请参考米V米的这篇文章。

Docker 新手入门:介绍及安装www.mivm.cn去看看

Docker的安装,本文不做详细介绍。如有需要,可以单独开篇。


二、拉取Mjpg-streamer镜像


这里给出两个命令,分别是小钢炮的和armbian的,因为ailispaw的mjpg-streamer有两个tag,armbian要带上arm64v8标签。

小钢炮:

docker pull ailispaw/mjpg-streamer

armbian:

docker pull ailispaw/mjpg-streamer:arm64v8

ailispaw/mjpg-streamer/hub.docker.com去看看

后者的镜像速度可能比较慢,mjpg-streamer镜像(提取码:2g60),请从我的百度网盘链接下载镜像,然后手动上传。

Images界面选择Import。

Images界面选择ImportImages界面选择Import

然后点击Select file。

Select fileSelect file

选择网盘下载的镜像文件,tar格式。

选择镜像选择镜像

然后点击Upload,等待一段时间提示成功即可,然后在Images界面就可以看到镜像了。

UploadUpload

上传成功上传成功

可以看到未使用的镜像可以看到未使用的镜像


三、运行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更新进展,Docker下安装mjpg-streamer,USB摄像头

配置完成后,重新启动homeassistant,然后在概览界面就可以看到摄像头了,默认是静态的,点击就会变成视频流了。

点击前点击前

点击后点击后

至此,在家中局域网内,你就可以通过ha的主页来查看视频流了,通过视频流,你也可以做很多事情,人脸识别等等都不在话下,唯一的问题是N1的性能可能会吃不消,我没有用720P,默认应该是640*480的。

另外,如果想要通过苹果手机查看视频的话,需要安装homebridge,ha自带的homkit不支持视频。后续我会写怎么配置。

还有一点我比较担心的是N1的性能,以下是运行了4个镜像的N1。

运行了4个容器运行了4个容器

负载情况。

负载负载

看样子还行,就是温度有点高,夏天到了。


五、总结


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。

展开 收起
9评论

  • 精彩
  • 最新
  • 楼主你的20.02上面lsblk -no PKNAME /dev/sda2能正常取到sda吗?我因为想保留U盘上的5.77,没有直接写img镜像,只写了两个分区,U盘启动后提示resizefs失败,定位了一下是lsblk异常,不知道是本来就有的bug还是跟我操作有关。

    校验提示文案

    提交
    额,我没试过你这种做法。

    校验提示文案

    提交
    昨天直接写img试过了,也是一样,ubuntu的

    校验提示文案

    提交
    收起所有回复
  • 请问下home bridge 如何配置mjpeg连接的usb摄像头

    校验提示文案

    提交
    source地址改成mjpg-streamer里的视频流地址就好了。

    校验提示文案

    提交
    收起所有回复
  • 大佬,请问如何把摄像头数据通过homebridge接入,然后通过手机的家庭来进行查看摄像头数据? 求教程🙏

    校验提示文案

    提交
    之前做过,后来没弄了,你查下把homeassistant连入home的教程,之前有成功过,但是后来换了homeassistant版本还是什么原因,又不行了。另外如果要远程看,苹果的home需要有个家庭中枢。

    校验提示文案

    提交
    谢谢MEMOL大大, 请问有开源的方案办法把摄像视频保存成文件吗? 想用rsync写个shell同步. 这样就不用录像机和硬盘机了, 买个大硬盘就行. 谢谢指点

    校验提示文案

    提交
    收起所有回复
  • 请问楼主armbian20.2刷入方法跟正常5.77的方法一样吗?20.2的系统在哪里下载?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
107
扫一下,分享更方便,购买更轻松