一、简介

1.MJPEG-streamer方案的实现

优点
程序简单,所有源码一目了然,便于学习
对ARM板的性能要求不高,主频200MHZ的ARM芯片也能实现
缺点:
实现局域网内的视频监控
要实现互联网视频监控,需要另外实现内网穿透
Mjpeg-streamer没有实现声音传输
Mjpeg-stream项目已经不再维护,仅仅建议用于学习

2.JPEG,MJPG格式简介

JPEG:简称jpg
一个像素的颜色可以用RGB三原色来表示,其实还可以用YUV格式表示
使用RGB,YUV格式编码照片,文件都很大,比如BMP文件就是用RGB编码
把一个BMP文件转换为JPEG文件,可以发现图片质量没发生变化,但是文件变小了很多
JPEG是根据人体视觉的特点采用了YCbCr格式,大大压缩了照片的大小

MJPEG
MJPEG是静态图片的编码格式,MJPG是动态的视频编码格式
可以简单理解:MJPG就是把多个JPEG图片连续显示出来
MJPG的优点
很多摄像头本身就支持JPEG,MJPG,所以处理器不要太多处理
MJPEG的缺点
MJPEG只是多个MJPEG图片的组合,它补考虑前后两帧的数据变化,总是传输一帧帧图像:传输带宽要求高
H264等视频格式,会考虑前后两帧的数据变化,只传输变化的数据:传输带宽要求低

二、安装mjpeg-streamer

2.1 更新源

sudo apt-get update          #更新软件列表
sudo apt-get upgrade        #更新软件

以上两个更新如果在刚启动树莓派的时候更新过了的话可以忽略

2.2 安装依赖和相关工具

sudo apt-get install 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              #下载编译工具

2.3 克隆源码并编译安装
2.3.1 安装git

sudo apt-get install git

2.3.2 克隆源码

git clone https://github.com/jacksonliam/mjpg-streamer.git

2.3.3 进入mjpg-streamer/mjpg-streamer-experimental路径编译:

cd mjpg-streamer/mjpg-streamer-experimentalmake all

2.3.4 安装

sudo make install

3. 安装完成之后,修改启动脚本
mjpg-streamer/mjpg-streamer-experimental路径下的启动脚本:

vi start.sh

下方句段修改为上方句段或加#注释下方句段添加上方句段:

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

如下图所示:

使用树莓派摄像头用input_raspicam.soinput_uvc.soUSB插口摄像头使用

4. 使能摄像头
使能前可以先:
4.1 查看是否存在vchiq设备节点:

ls /dev

如下图所示:

4.2 查看当前摄像头是否可用

vcgencmd get_camera

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

如下图所示:

  1. 以上操作都完成了之后,我们就要对摄像头相关的配置设置一下

5.1 sudo raspi-config

5.2
5.3
5.4
5.5 以上操作都完成后,重启树莓派

sudo reboot

6. 开启摄像头
6.1 通过脚本启动,在mjpg-streamer/mjpg-streamer-experimental路径下:

./start.sh

下图所示就是已经开启了摄像头了

7. 浏览器查看视频流
端口号:

在浏览器网址栏输入:

http://ip:port                          //我的树莓派此时的 ip地址为 192.168.191.5
http://192.168.191.5:8080

8.更多功能:

拍照:

raspistill -o image.jpg

此处图片名:image,保存为.jpg格式

再把图片传到windows系统下打开,即可看到拍到的图片

更多参数使用raspistill --help指令查询:

raspistill --help

树莓派mjpg-streamer 使用摄像头优秀博文

学习笔记,仅供参考

树莓派的mjpeg-streamer实现简单的监控功能相关推荐

  1. 智能家居代码构建编写、简单工厂模式、树莓派摄像头视频监控功能实现

    根据上一节内容的代码框架开始编写代码: 首先编写controlDevices.h这个头文件里面的代码,这个是设备工厂每一个结点的结构体类型,而且还要在这个头文件里面进行函数的声明,也就是创建的那些设备 ...

  2. 树莓派(Raspbian)+motion+树莓派摄像头——实现局域网监控功能

    文章目录 安装motion 配置motion 1.编辑motion 2.修改motion的配置文件 3.启动motion 4.查看实现效果 安装motion 打开命令行输入: sudo apt-get ...

  3. 树莓派mjpg-streamer实现监控功能

    树莓派实现监控功能,调用mjpg-streamer库来实现.mjpg-streamer是一个开源的摄像头媒体流,通过本地获取摄像头的数据,通过http通讯发送,可以通过浏览器访问树莓派的IP地址和端口 ...

  4. 一个简单的监控系统的设计

    一个简单的监控系统的设计 # // // 为了实现上级需要一个监控的需求,设计一个小的监控系统,结构如下图. // 虽然是一个比较简单的功能,但是仍然对代码的结构的关系进行了设计,使其具备良好的可扩展 ...

  5. 树莓派4B+cpolar+MJPG-Streamer+Xshenll实现远程监控

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 树莓派4B+cpolar+MJPG-Streamer+Xshenll实现远程监控 前言 具体流程 1.系统安装 2.配置环境 3.下载 ...

  6. 用机顶盒或网络电视机实现监控摄像头预览,完成简单的录相机功能,用机顶盒远程观看摄像头,多个监控可以同时观看,实时观看,也可以用机顶盒或网络电视观看局域网内的监控画面

    用机顶盒或网络电视机实现监控摄像头预览,完成简单的录相机功能,用机顶盒远程观看摄像头,多个监控可以同时观看,实时观看,也可以用机顶盒或网络电视观看局域网内的监控画面 准备: 1.需要知道 监控摄像头的 ...

  7. 通过案例学功能 自定义监控功能初探

    IT系统千差万别,即便是通用的Java.PHP也会由于版本的差异,配置和接口存在大同而小异,但往往就是这些小差别,会对系统的稳定性和性能产生大影响.市面上的IT监控产品都只能对标准应用的流行版本进行准 ...

  8. 树莓派python网络通信_Python3使用Socket实现树莓派与计算机半双工通信,实现聊天功能...

    项目中需要实现PC与树莓派通信完成控制,寻找一遍后,发现现例子大多比较简单,可以实现一次收发过程,第二次数据发送就会出现问题.观察发现少一个循环,无法保持联通状态,代码修改后可以简单的实现半双工通信, ...

  9. 部署及配置Lync Server 2013 监控功能

    在上面一篇文章中我们已经部署了存档功能,并且在标准版环境搭建了一台SQLServer服务器作为后端数据库服务器,有了这台服务器我们可以做什么呢?存档,当然还有监控,以及整个CMS.当然这都是一步一步演 ...

最新文章

  1. 包含锚点平滑滚动效果/解决锚点链接碰到固定定位问题/导航选中背景变色/固顶/返回顶部效果全...
  2. 访问级别约束0906
  3. 单片机数据在网页上显示_不务正业的Excel也玩地图,在地图上显示数据,好玩又简单...
  4. __block 和 __weak的区别
  5. Python3 数字运算
  6. neutron plugin 与 extension 编写流程
  7. 要用Identity Server 4 -- OAuth 2.0 超级简介
  8. android 展示星期方式,Android显示从一周到另一周的日期(星期四至星期四)
  9. 流程管理软件如何适应变化
  10. 开放下载!《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》
  11. 程序开源与不开源区别_什么是开源程序办公室? 为什么需要一个?
  12. 怎样从altera下载软件与器件库
  13. DWM1000模块简介
  14. H.323-SIP信令网关
  15. java jdom 设置第1行_使用JDOM操作XML
  16. AspectJ自定义注解报错:error Type referred to is not an annotation type:xxx -----IllegalArgumentException
  17. 美国奶酪(芝士) - cheese
  18. 一个手机里登录2个微信号(微信双开)
  19. 如何在iPhone和iPad上隐藏IP地址,保护个人隐私信息
  20. JAVA中枚举是什么

热门文章

  1. 回顾 Firefox 历史
  2. 局域网:提高内网安全技术的十大策略(转)
  3. 初学订单-支付流程(思路)
  4. 论文参考文献格式标准
  5. 镜头离焦对于ToF深度的影响分析
  6. nodejs和npm版本升级
  7. python-优矿-基金20%赎回赚钱概率96.3%
  8. 【Java】练习题库 单选题
  9. AppScan 是一款web安全扫描工具
  10. 艾司博讯:拼多多价格竞争力不足怎么办