jjzjj

智能家居 —— 树莓派下载安装mjpg-streamer(完成拍照+录像+监控)

Is Fang 2023-08-10 原文

文章目录

摄像头硬件安装

  • 硬件连接时我们首先需要使用树莓派摄像头FFC排线连接树莓派摄像头与树莓派开发板。
  • 排线连接的接口被称为CSI(Camera Serial Interface)接口。

mjpg-streamer功能介绍

  • 树莓派利用pi Camera模块,通过mjpg-streamer软件获取视频,通过手机端或电脑端浏览实时视频
  • mjpg-streame是一个开源的摄像头的媒体流,他是通过本地获取本地摄像头的数据,再通过http通讯发出来

mjpg-streamer安装

步骤一:

sudo apt-get update    #更新软件列表
sudo apt-get upgrade  #更新软件
sudo apt-get install subversion  #Subversion是一个自由开源的版本控制系统

//下载安装其他相应的支持库
sudo apt-get install libjpeg8-dev  #JPEG支持库

sudo apt-get install imagemagick

sudo apt-get install libv4l-dev   #4l是小写"L"

sudo apt-get install cmake  #下载编译工具

报错:

下载安装包的时候显示空间不足

方案一:

  • df -h查看内存,如果只有3.1G就需要扩容
  • sudo raspi-config,然后执行下面流程

方案二:

步骤二:

下载git

sudo apt-get install git

下载压缩包到树莓派

git clone https://github.com/jacksonliam/mjpg-streamer.git
或去官网下载压缩包,然后上传到树莓派,官网地址:https://github.com/jacksonliam/mjpg-streamer,
然后调用unzip mjpg-streamer-experimental压缩

进入文件目录

cd mjpg-streamer/mjpg-streamer-experimental 

步骤三:

编译

make all  //编译,调用cmake,cmake利用插件的思想(生成so文件)去构建整个工程

执行结果

安装

sudo make install #安装

执行结果

修改启动脚本

vi start.sh

input_uvc.so注释掉,替换成input_raspicam.so
将启动脚本原来默认的USB摄像头替换成树莓派的

步骤四:

使用ls /dev指令来查看是否存在vchiq设备节点:


运行vcgencmd get_camera查看当前摄像头是否可用:

  • 如果detected=0,说明摄像头模块没接好,重新排查下硬件。
  • detected=1则说明CSI摄像头接入正常。
  • supported=1说明摄像头已经使能,摄像头已经可以使用。
  • supported=1则说明CSI摄像头没有使能。需要使能下摄像头模块。

打开Linux系统的摄像头

sudo raspi-config

步骤如下:




进入到pi@raspberrypi:~/mjpg-streamer/mjpg-streamer-experimental $目录下启动脚本

./start.sh

执行结果:

步骤五:

在浏览器输入 http://IP地址:8080,回车 显示如下页面,点击页面左侧,Stream栏,显示监视画面

参考博文:树莓派3B + Pi摄像头+mjpg-streamer

使用rapistill命令拍照

raspistill -o image.jpg -t 1000

主要学习其参数及命令:(更多参数使用raspistill --help)

  • -w, –width : 设置图像宽度 <尺寸>
  • -h, –height : 设置图像高度 <尺寸>
  • -q, –quality : 设置jpeg品质 <0到100>
  • -t, –timeout : 拍照和关闭时的延时指定,未指定时默认是5s,毫秒为单位,1000便表示1秒
  • -o, –output : 输出文件名 <文件名>,如果要写到stdout,使用-o -,如果不特别指定,图像文件不会被保存
  • -rot:图像旋转角度,只支持 0、90、180、270 度

专业摄影参数:

  • 曝光参数:

    • -ss:后跟的是微秒
    • -ss 9000000:9s
    • -ISO 125:感光
    • -ex verylong:焦距,无限远;
  • -awb off:自动白平衡,awb:auto white balance

    • -awbg 1,1
  • -bm(burst mode), –burst : 运行burst capture mode

延时拍摄参数:

  • -tl(–timelapse ):raspistill 进入 -tl 模式,则排到的便不是一副图像,而是通过一定的时间间隔的多幅图像;

注意:

  • 照片将会保存在当前路径下,使用MobaXterm可以传输到windows桌面打开

参考博文:
【树莓派】简单配置CSI摄像头
树莓派进阶之路 (018) - raspberryPi摄像头命令行软件raspistill帮助文档

使用raspivid命令录像

raspivid -o b.h264 -t 10000 -w 1280 -h 720

该命令的意思是录制一段十秒钟的名为b.h264的视频,且分辨率为1280x720

如果不带名称后的参数的话,系统会默认录制时间为5秒,分辨率为1920x1080。

此时录制的视频虽然能够在树莓派上播放,但并非是能够在一般播放器上运行的常规视频文件,且录制的视频是没有声音的。

要想将.h264格式的视频转换为mp4格式的视频,需要使用一个叫做gpac的工具。

sudo apt-get update
sudo apt-get install gpac

安装后输入以下命令对刚才的视频进行格式转换,转换后的视频为每秒30帧。

MP4Box -fps 30 -add b.h264 b.mp4

使用motion命令监控

简介:Motion是Linux下一款轻量级的监控软件。在日常工作模式下,Motion可以提供网络摄像头的功能。当拍摄过程中画面发生变动时,Motion可以保存动作发生时的图片和视频。

输入命令进行安装:

sudo apt-get install motion

首先将motion软件的后台进程改为开启,让它能够一直在后台运行。输入以下命令,将文件中 “start_motion_daemon=no” 的no改为yes。执行 CTRL + O 并按 ENTER 保存更改,按 CTRL + X退出

sudo nano /etc/default/motion

之后输入命令打开motion的配置文件:

sudo nano /etc/motion/motion.conf

这个文件中保存了许多motion的基本设置,因为选项比较多,下面只写出一些比较重要的选项的值,其他可以用默认值,或者参考motion官网上的documents。motion.conf里自带的注释也很完整。

daemon on  				#off改成on,在后台运行。设置为off将在前台运行
width 640  
height 480 				#摄像头像素宽高
framerate 50 				#帧率fps,解决卡顿问题
stream_maxrate 100 				#默认是1,不改的话监控视频会很卡,将其参数改大
stream_localhost off    			#设为off,允许外网访问视频流(on为不允许)

#如果要检测到运动的物体可以加:
locate_motion_mode on 			#将off修改为on,探测到实时视频中有物体运动时,运动区域被矩形框起来

#如果要修改视频流端口:
stream_port 8081 			#端口号

#如果要修改Motion存储文件的目标文件夹
target_dir /var/lib/motion 			 #所存储文件包括了运动捕捉产生的图片或视频,用户motion必须对该目标文件夹有写入权限

#通过motion可以实现当监控到有运动物体时,截取图片。
output_pictures best # 将off改为best,还可以选first和center

需要更改的参数有以下几行,在nano编辑器环境下可以使用快捷键ctrl+w对关键字进行查找。

关闭motion服务的命令:

sudo killall -TERM motion
sudo service motion stop

启动服务命令:

sudo service motion start  

打开motion命令:

sudo motion

motion运行成功打印:

[0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0:motion] [ALR] [ALL] conf_cmdparse: Unknown config option "
"
[0:motion] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion/motion.log)

在同一局域网下的浏览器访问http://raspberry IP:8081

  • 这里的8081是和配置文件中的视频流端口号有关(stream_port 8081)

可以设置开机自动启动motion,执行下面命令,在exit 0前添加 motion

sudo nano /etc/rc.local

报错:

如果在浏览器访问显示灰色内容且摄像头也没亮,说明少驱动bcm2835-v4l2

执行cat /etc/modules查看modules是否包含bcm2835-v4l2

如果没有则按照如下解决方法:查看下面的《添加UVC驱动》

原因分析:

参考博文:
树莓派4B摄像头安装和使用方法详解(支持拍照,录像,实时监控)
树莓派4B摄像头的详细使用教程(拍照+录像+监控)

添加UVC驱动

有些程序采用V4L2编程,会访问到/dev/videoX设备,因此需要添加UVC驱动,针对树莓派3B/3B+可以采用如下的方法添加bcm2835-v4l2驱动:

执行sudo vim.tiny /etc/modules在最后一行添加bcm2835-v4l2

pi@raspberrypi:~$ sudo vim.tiny /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

i2c-dev
bcm2835-v4l2

然后重启即可在/dev/目录下看到videoX(X为数字编号,如0)的驱动

有关智能家居 —— 树莓派下载安装mjpg-streamer(完成拍照+录像+监控)的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  10. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

随机推荐