文章目录

  • 前言
  • MJPG-streamer的安装
  • usb摄像头
  • web摄像头图像查看
    • mjpg_stream help
    • 参数解释
      • 输入
      • 输出
  • homeassistant使用
  • 其他
    • ffmpeg使用usb摄像头
    • homeassistant学习链接
  • 树莓派(docker)nginx-rtmp-raspi
  • 首先安装docker
  • 问题
    • 解决wget报错ERROR: The certificate of ‘xxxxx’ is not trusted

前言

在homeassistant中使用ffmpeg集成来使用usb摄像头一直是有问题的,只要你开启了stream基本上视频就出不来(默认配置default_config默认就开启了stream,如果非要用ffmpeg,就不用stream流,但是出来的效果也很差)在社区中采用的方法也是将usb转为web摄像头来使用;还有一种插件就是motioneye,这个插件可以解决usb摄像头的问题,但是这个插件的效果非常差,而且占用系统资源很大。因此这里采用的方法是使用MJPG-streamer来将usb摄像头数据转为web摄像头从而和homeassistant来完成联动,并且还可以设置验证身份访问,还是很安全的。

MJPG-streamer的安装

参考文章

#/bin/bash
path=/home/pi/stream
stream_package=(subversion libjpeg8-dev imagemagick libv4l-dev cmake git)
apt install ${stream_package[@]} -y
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make all
make DESTDIR=${path} install

将此脚本以sudo运行,即可安装MJPG-streamer

usb摄像头

v4l2-ctl --list-devices查看usb摄像头信息

web摄像头图像查看

然后·运行命令
./mjpg_streamer -i "../lib/mjpg-streamer/input_uvc.so -d /dev/video1 -n -y -f 25 -r 640x480" -o "../lib/mjpg-streamer/output_http.so -n -w /home/wp/www"
请注意库的位置根据你安装的位置改变

然后在局域网下打开浏览器输入

http://raspberry-ip-address:8080/?action=stream即可查看到图像

mjpg_stream help



参数解释

输入

-n表示不初始化Linux-uvc驱动程序的dynctrl
-y表示使用YUV格式,默认:MJPEG(使用更多的cpu功率)
-f表示帧率
-r表示分辨率(可以为QQVGA QCIF CGA QVGA CIF PAL VGA SVGA XGA HD SXGA UXGA FHD 或者 如这种形式: 640x480)
-timestamp用系统时间填充帧时间戳
-rot设置图像旋转(0-359)
-hf设置水平翻转(ture/false)
-vf设置垂直翻转(ture/false)

输出

-n禁止执行命令
-w包含网页的文件夹平面层次结构(没有子文件夹)
-c要求输入用户名和密码,调用方式如下
./mjpg_streamer -i "../lib/mjpg-streamer/input_uvc.so -d /dev/video1 -n -y -f 25 -r 640x480" -o "../lib/mjpg-streamer/output_http.so -n -c "wp:1152679377" -w /home/wp/www"
注意相应的在homeassistant配置文件中加上

-p端口设置
-l设置监听的ip

homeassistant使用

MJPEG IP Camera集成
根据此集成,只需要在configuration.yaml中添加即可

# Example configuration.yaml entry
camera:- platform: mjpegmjpeg_url: http://192.168.1.92/mjpeg

其他

camera核心集成

ffmpeg使用usb摄像头

注意不要用默认配置

homeassistant学习链接

链接
目前写的还很乱,后面会整理

树莓派(docker)nginx-rtmp-raspi

首先安装docker

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun

github链接
nginx-rtmp构建webcam超详细链接
然后下载dockerfile脚本

git clone https://github.com/idlerun/nginx-rtmp-raspi

然后将Dockerfile替换掉

ARG baseimg=raspbian/stretch
FROM $baseimg as build
ENV DEBIAN_FRONTEND=noninteractive
ENV SRC_DIR=/src
RUN mkdir -p $SRC_DIR
RUN apt-get update
RUN apt-get install -y \wget git libtool autoconf cmake \build-essential pkg-config
WORKDIR $SRC_DIRRUN wget -q http://zlib.net/zlib-1.2.11.tar.gz
RUN tar -zxf zlib-1.2.11.tar.gzRUN wget  https://www.openssl.org/source/openssl-1.1.1.tar.gz --no-check-certificate
RUN tar xf openssl-1.1.1.tar.gzRUN wget -q https://nginx.org/download/nginx-1.15.6.tar.gz
RUN tar xf nginx-1.15.6.tar.gzRUN wget -q https://github.com/arut/nginx-rtmp-module/archive/v1.2.1.tar.gz
RUN tar xf v1.2.1.tar.gzRUN wget https://sourceforge.net/projects/pcre/files/pcre/8.42/pcre-8.42.tar.gz/download --no-check-certificate -O pcre-8.42.tar.gz
RUN tar -zxf pcre-8.42.tar.gzWORKDIR /src/nginx-1.15.6
RUN mkdir -p /build /conf
RUN ./configure --prefix=/build \--with-zlib=/src/zlib-1.2.11 \--with-openssl=/src/openssl-1.1.1 \--with-pcre=/src/pcre-8.42 \--sbin-path=/usr/local/bin/nginx \--conf-path=/conf/nginx.conf \--pid-path=/var/run/nginx.pid \--lock-path=/var/lock/nginx.lock \--error-log-path=/var/log/nginx-error.log \--http-log-path=/var/log/nginx-access.log \--without-mail_pop3_module \--without-mail_imap_module \--without-mail_smtp_module \--without-http_fastcgi_module \--without-http_uwsgi_module \--without-http_scgi_module \--without-http_memcached_module \--with-http_ssl_module \--with-http_gzip_static_module \--with-threads \--add-module=../nginx-rtmp-module-1.2.1
RUN make -j4
RUN make installFROM $baseimg
COPY --from=build /usr/local/bin/nginx /usr/local/bin/
COPY --from=build /build /build
COPY nginx.conf /conf/
RUN mkdir -p /web/www /web/hls
COPY index.html /web/www/
ENTRYPOINT nginx

替换后在文件夹nginx-rtmp-raspi

sudo bash build.sh

其中使用方法在stream.conf中有

ffmpeg -re -f video4linux2 -i /dev/video0 -framerate 25 -vcodec h264_omx -map 0:v -b:v 800k -vprofile baseline -vf "scale=640:360" -f flv rtmp://localhost/show/stream

在浏览器中使用ip:8080访问

问题

解决wget报错ERROR: The certificate of ‘xxxxx’ is not trusted

在wget指令后添加–no-check-certificate

homeassistant中usb摄像头的使用(usb转web摄像头)相关推荐

  1. MATLAB Support Package for USB Webcams 的使用方法(MATLAB调用摄像头后的使用方法)

    这篇博文是博文 https://blog.csdn.net/wenhao_ir/article/details/125443771的配套博文. 这篇博文是对"MATLAB Support P ...

  2. 一台电脑同时连接多个相同的USB摄像头并根据USB口进行区分

    一台电脑同时连接多个相同的USB摄像头并根据USB口进行区分 百度搜了下, https://blog.csdn.net/kingston110/article/details/112060113?sp ...

  3. 解决opencv中cv2.VideoCapture()函数打开USB视频慢的问题

    解决opencv中cv2.VideoCapture()函数打开USB视频慢的问题!!! cv2.VideoCapture(0)打开电脑自带摄像头比cv2.VideoCapture(1)打开usb慢好多 ...

  4. linux下uvc协议访问usb摄像头,Ubuntu调用USB摄像头

    FreeBSD Webcam:传送门 1 查看摄像头USB驱动 CMD ls /dev/v* Result /dev/vcs /dev/vcs4 /dev/vcsa1 /dev/vcsa5 /dev/ ...

  5. Linux复制文件到usb设备中,使用shell脚本实现USB设备的加载与文件复制

    使用shell脚本实现USB设备的加载与文件复制 在Linux操作系统中,如果插入一个USB设备,需要用mount挂载命令才能实现这个设备的加载,下面写一个USB设备挂载与文件复制的Shell程序,程 ...

  6. 网络摄像头转usb接口_Arduino + USB Host Sheild 实现USB鼠标转PS/2接口

    制作缘由 公司内网只有PS/2接口,希望可以使用无线鼠标(貌似没有PS/2接口的).而那种USB转PS/2的转接头只是简单的连线,需要键盘或鼠标本身支持PS/2模式才可以正常工作,现代的USB鼠标接收 ...

  7. android外接usb摄像头demo_手机USB接口有哪些功能 手机USB接口功能介绍【详解】

    手机身上的USB接口主要的任务就是充电,连接PC传输数据,你还能想到其他的功能吗?没错,它还能连接USB小风扇.小台灯等外设.但是,你以为所有手机在实现这些功能时的体验和效果都是一样的吗? 充电速度和 ...

  8. 网络摄像头转usb接口_同时读取多个摄像头数据(包括海康网络摄像头和USB摄像头)...

    一.功能 1.实现多个摄像头同时获取图像,并保存到个各自目录 2.摄像头类别包括海康RSTP协议网络摄像头和普通USB摄像头 3.可自动和手动保存图片 二.注意事项 1.python可以使用multi ...

  9. win7 host 中 vbox 虚拟机无法 attach USB device的问题

    在win7 HOST 中用Vbox安装ubuntu虚拟机,发现ubuntu虚拟机中无法访问HOST的USB设备. 解决方法: 需要修改win7 HOST的注册表! 进入以下路径 [HKEY_LOCAL ...

最新文章

  1. 由于客户端检测到一个协议错误 代码0x1104
  2. CF660C Hard Process(尺取法)
  3. xml介绍与解析,及xml库包使用
  4. git学习创建项目仓库
  5. pptp client
  6. Spring3MVC+Mybatis3.1框架下的事务
  7. php内置函数和扩展,PHP 内置函数strlen 和mbstring扩展函数mb_strlen的区别
  8. 26_多线程_第26天(Thread、线程创建、线程池)_讲义
  9. 算法题目——爬楼梯(动态规划)
  10. c语言设置输出字符大小_C语言中常用的几个头文件及库函数
  11. 【JavaScript】重温Javascript继承机制
  12. 数据结构算法题整理2
  13. 财经365热点:当阿里巴巴不再讲“中台”
  14. 北京电子邮箱账号密码登录技巧
  15. Codeforces 821B Okabe and Banana Trees 题解
  16. 牛逼了,利用Python实现“天眼系统”,只要照片就能了解个人信息
  17. bzoj 2876: [Noi2012]骑行川藏 拉格朗日数乘
  18. VS2008里的代码如何格式化?
  19. STM32CubeIDE开发(三十一), stm32人工智能开发应用实践(Cube.AI).篇一
  20. 女子上班10天被辞退获赔1万,不料竟收到122斤硬币,法院做法亮了

热门文章

  1. 操作系统期末习题考试习题解答题目二
  2. 续上文,Unity3D面试ABC
  3. 从小白到起飞的 RT-Thread 开发指南
  4. c语言的程序运行原理图,C语言main函数的原理详解
  5. Java使用Aspose组件进行多文档间的转换操作
  6. tp框架中的facade
  7. 教育知识与能力——简答题30题
  8. IDEA——手把手教你mybatis的使用(新手教程)
  9. 显示函数取字符数组的用法
  10. 【蓝桥杯】单片机精确延时——软件延时