第一次写博文,有很多疏漏之处,然后受逼乎影响较深,希望大家多多包涵!

_______________________________________________分割线是这样画的吧___________________________________________________________________________________________________

    首先,你得有一个树莓派,而且已经配好ssh(推荐xshell5),这里我不推荐用什么远程桌面,因为很卡。

    第一步,打开摄像头ENABLE选项(不然摄像头没法工作)

    输入

  1. sudo raspi-config

   按照 5.interfacing  options ->P1 camrea->select->enable->ok就可以打开摄像头了,是不是很简单呢?

    第二步,下载必要的库,mjpg-sreamer是必须要的。

   大家可以到https://github.com/jacksonliam/mjpg-streamer/archive/master.zip上下载必须的库文件,然后要导入到树莓派上,我用的是FlashFXP,很方便的就把文件移到树莓派上了。

但是这款软件要钱啊,很贵。大家也可以直接这样:

  1. wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip

    直接在树莓派上下载。

    第三步:安装辅助工具,敲下如下两行。

  1. sudo apt-get install libjpeg8-dev
  2. sudo apt-get install cmake

    其中编译mjpg-streamer需要上面那个库。对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。

    这里,小编有时候会忘了自己是否已经安装了这个那个库,不妨用这个技巧:

  1. dpkg -l

    你所有安装的库都会显示出来。也可以用以下命令去具体查询哪一个软件。

  1. dpkg -l|grep 你要查的软件名

    如图,这种情况说明你已经安装了vim。

    第四步,解压和编译mjpg-streamer工程文件。

   下载的是压缩包需要先解压

  1. unzip master.zip

首先,我们先找到安装文件的位置,可以直接ls,找到之后就敲:

  1. cd mjpg-streamer-master/mjpg-streamer-experimental/

再接着:

  1. make clean all

哗哗出现一大堆东西,只要没有error,你就可以进行下面操作:

   第五步:开启摄像头(raspicam;USB摄像头)

  

  1. ./mjpg_streamer -i"./input_uvc.so" -o"./output_http.so -w ./www"

    对于USB摄像头:

  1. ./mjpg_streamer -i "input_uvc.so" -o "output_http.so -w ./www"

下面以树莓派摄像头为例说明:

  这个命令是直接利用的8080端口,显示的是demo网站,在你的地址栏敲http://你树莓派的ip:8080/stream.html,不出意外,你就能看见:(我用的是火狐浏览器)

很帅的小伙啊,有木有。(不会告诉你那就是我啦!)

————————————————————————————————————认真的分割线————————————————————————————————

如果只是想看画面的画还有一个命令:

  1. ./mjpg_streamer -i "input_rpicam.so" -o "output_http.so -p 8090"

这个可以指定端口输出:

之前还出现图像模糊的情况,结果发现是镜头纸忘了取了,/emoji

之后我想起来,网上很多教程是命令带参数的,但是我怎么敲都不行。我看了一下帮助

  1. ./mjpg_streamer -h

这应该是最最官方的说明吧。出现很多信息,这说明你的摄像头正在运行。我运行USB摄像头也行,但是也有很多bug,这是因为我的usb摄像头只支持YUV格式的。

  1. MJPG Streamer Version.: 2.0
  2. i: Using V4L2 device.: /dev/video0
  3. i: Desired Resolution: x
  4. i: Frames Per Second.: -
  5. i: Format............: JPEG
  6. i: TV-Norm...........: DEFAULT
  7. i: Could not obtain the requested pixelformat: MJPG , driver gave us: YUYV
  8. ... will try to handle this by checking against supported formats.
  9. ... Falling back to YUV mode (consider using -yuv option). Note that this requires much more CPU power
  10. UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device ()
  11. UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device ()
  12. UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device ()
  13. UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device ()
  14. UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device ()
  15. UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device ()
  16. UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device ()
  17. UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device ()
  18. UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device ()
  19. UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device ()
  20. UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device ()
  21. UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device ()
  22. UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device ()
  23. UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device ()
  24. UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device ()
  25. UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device ()
  26. o: www-folder-path......: disabled
  27. o: HTTP TCP port........:
  28. o: HTTP Listen Address..: (null)
  29. o: username:password....: disabled
  30. o: commands.............: enabled
  31. [-fps | --framerate]...: set video framerate, default frame/sec
  32. [-x | --width ]........: width of frame capture, default
  33. [-y | --height]........: height of frame capture, default
  34. [-quality].............: set JPEG quality -, default
  35. [-usestills]...........: uses stills mode instead of video mode
  36. [-preview].............: Enable full screen preview
  37. [-timestamp]...........: Get timestamp for each frame
  38. -sh : Set image sharpness (- to )
  39. -co : Set image contrast (- to )
  40. -br : Set image brightness ( to )
  41. -sa : Set image saturation (- to )
  42. -ISO : Set capture ISO
  43. -vs : Turn on video stablisation
  44. -ev : Set EV compensation
  45. -ex : Set exposure mode (see raspistill notes)
  46. -awb : Set AWB mode (see raspistill notes)
  47. -ifx : Set image effect (see raspistill notes)
  48. -cfx : Set colour effect (U:V)
  49. -mm : Set metering mode (see raspistill notes)
  50. -rot : Set image rotation (-)
  51. -stats : Compute image stats for each picture (reduces noise for -usestills)
  52. -drc : Dynamic range compensation level (see raspistill notes)
  53. -hf : Set horizontal flip
  54. -vf : Set vertical flip
  55. ---------------------------------------------------------------

但是上面也有很多有价值的参数 比如-x -y -fps,这样我试着敲

  1. ./mjpg_streamer -i "input_raspicam.so -quality 100 -x 800 -y 640 -fps 20 " -o "output_http.so -w ./www"

成功了!但是画面很卡,多少帧每秒,大家试试就知道啦。

然后教程就到这里了,如果要结束监控,敲ctrl + c就行了。

如果有什么问题,或者有更好的方法欢迎留言!

做监控的话,还要开发一下这个界面,能实现拍照,截屏,保存的基本功能。

下一篇:内网穿透实现外网访问

参考资料:(感谢各位大佬)

  1. https://jingyan.baidu.com/article/c33e3f48e88806ea14cbb57b.html
  2.  
  3. http://tieba.baidu.com/p/3981484977?traceid=
  4.  
  5. http://shumeipai.nxez.com/2017/05/14/raspberry-pi-mjpg-streamer-installation.html
  6.  
  7. http://shumeipai.nxez.com/2014/09/21/raspicam-documentation.html
  8.  
  9. https://dotblogs.com.tw/bowwowxx/2015/06/08/151511
  10.  
  11. https://github.com/jacksonliam/mjpg-streamer
  12.  
  13. http://blog.csdn.net/blueslime/article/details/12429411
  14.  
  15. http://blog.csdn.net/zhaole20094463/article/details/7026252

手把手教你树莓派实现简易室内监控系统(A)的更多相关文章

  1. 手把手教你树莓派实现简易室内监控系统(C)之BOA服务器的搭建

    本篇主要讲利用BOA服务器做室内监控系统的服务器端. 古人云:万事开头靠百度,实在不行就Google.小编也是一步一步的,亲自搭建成功,不能说是万全之策,仅仅是给大家一个参考就满足了. 第一步: 1. ...

  2. SQL Server 手把手教你使用profile进行性能监控

    200 ? "200px" : this.width)!important;} --> 介绍 经常会有人问profile工具该怎么使用?有没有方法获取性能差的sql的问题.自 ...

  3. 手把手教你撸一个简易的 webpack

    背景 随着前端复杂度的不断提升,诞生出很多打包工具,比如最先的grunt,gulp.到后来的webpack和Parcel.但是目前很多脚手架工具,比如vue-cli已经帮我们集成了一些构建工具的使用. ...

  4. SQL Server手把手教你使用profile进行性能监控

    介绍 经常会有人问profile工具该怎么使用?有没有方法获取性能差的sql的问题.自从转mysql我自己也差不多2年没有使用profile,忽然profile变得有点生疏不得不重新熟悉一下.这篇文章 ...

  5. 【手把手教你树莓派3 (二)】 启动wifi模块

    概述 树莓派3内置了wifi和蓝牙模块,我们不用像以前的版本那样,再去购买一个外接的模块练到raspberry上. 当我们第一次启动了树莓派的时候,必然使用了网线,但是之后的每一次使用,我们当然更希望 ...

  6. 一步步教你用Prometheus搭建实时监控系统系列(一)——上帝之火,普罗米修斯的崛起

    上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼.每次我都能联想到带来上帝之火的希腊之神,普罗米修斯.而这个开源的logo也是火,个人挺喜欢这个logo的设计. 本 ...

  7. 一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式

    前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...

  8. 手把手教你如何利用Meterpreter渗透Windows系统

    在这篇文章中,我们将跟大家介绍如何使用Meterpreter来收集目标Windows系统中的信息,获取用户凭证,创建我们自己的账号,启用远程桌面,进行屏幕截图,以及获取用户键盘记录等等. 相关Payl ...

  9. U盘重装系统:手把手教你怎么使用U盘重装系统、清除登录密码

    前言 之前讲过<不懂电脑也能自己重装系统,可视化傻瓜式一键重装系统不求人!!!>,这是针对可以正常开机的情况下直接使用浏览器功能重装系统, 那不能正常开机或者忘记密码的怎么办呢? 不慌,今 ...

随机推荐

  1. SpringMvc4.x---快捷的ViewController

    @RequestMapping("/index") public String hello(){ return "index"; } 此处无任何的业务处理,只是 ...

  2. 初次真正意义上的接触Eclipse

    以前就玩安卓app 用过很多软件比如e4a,iapp,aide,lua,但是这都不是真正意义上的安卓编程软件.大二的时候用过Androidstudio,那个软件配置起来太难了,就搁置了. 这次利用机智 ...

  3. Linux指令--mkdir

    本篇博客参照http://www.cnblogs.com/peida/archive/2012/10/25/2738271.html. linux mkdir 命令用来创建指定的名称的目录,要求创建目 ...

  4. android 中string.xml中的%1$s

    idView.setText(getString(R.string.estate_id, mCollectParamObj.getPlotNo())); estate_id:小区号%1$s %d   ...

  5. [译] Linux吃掉了我的内存

    英文原文: https://www.linuxatemyram.com/ 作者: Vidar Holen 译者: thinkam 发生了什么? Linux正借用你未使用的内存来做磁盘缓存.这使你的计算 ...

  6. awk脚本使用的几种方法

    1. awk名包含在文件内 [root@nhserver1 08]# cat sample.txtaaabbbccc [root@nhserver1 08]# cat readsample.awkaw ...

  7. Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创)

    我们兴奋的宣布Databricks缓存的通用可用性,作为统一分析平台一部分的 Databricks 运行时特性,它可以将Spark工作负载的扫描速度提升10倍,并且这种改变无需任何代码修改. 1.在本 ...

  8. selenium的使用技巧及集成到scrapy

    为了爬取拉钩,今天学习了selenum的使用技巧.   from scrapy.http import HtmlResponse   class JSPageMiddleware(object):   ...

  9. 使用webpack、babel、react、antdesign配置单页面应用开发环境

    这是Webpack+React系列配置过程记录的第一篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...

  10. Springboot security cas源码陶冶-FilterSecurityInterceptor

    前言:用户登录信息校验成功后,都会获得当前用户所拥有的全部权限,所以对访问的路径当前用户有无权限则需要拦截验证一发 Spring security过滤器的执行顺序 首先我们需要验证为啥FilterSe ...