目录

MJPG简介:

1.硬件与驱动

1.1用到的工具材料:

1.2检查是否存在USB摄像头设备

2 .安装MJPG-Streamer

3.启动 MJPG-Streamer

3.1  输入以下命令

3.2参数说明:

4.实时视频接收


MJPG简介:

  MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名. 
  MJPEG 
  全名为 “Motion Joint Photographic Experts Group”,是一种视频编码格式, 
  Motion JPEG技术常用与闭合电路的电视摄像机的模拟视频信号“翻译”成视频流,并存储在硬盘上。典型的应用如数字视频记录器等。MJPEG不像MPEG,不使用帧间编码,因此用一个非线性编辑器就很容易编辑。MJPEG的压缩算法与MPEG一脉相承,功能很强大,能发送高质图片,生成完全动画视频等。但相应地,MJPEG对带宽的要求也很高,相当于T-1,MJPEG信息是存储在数字媒体中的庞然大物,需要大量的存储空间以满足如今多数用户的需求。因此从另一个角度说,在某些条件下,MJPEG也许是效率最低的编码/解码器之一。 
  MJPEG 是 24-bit 的 “true-color” 影像标准,MJPEG 的工作是将 RGB 格式的影像转换成 YCrCB 格式,目的是为了减少档案大小,一般约可减少 1/3 ~ 1/2 左右。 
  MJPEG与MJPG的区别: 
  1、mjpeg是视频,就是由系列jpg图片组成的视频。 
  2、MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名.

1.硬件与驱动

    1.1用到的工具材料

  • 树莓派3B+
  • PC电脑
  • USB摄像头

1.2检查是否存在USB摄像头设备

输入以下指令:

pi@raspberrypi:~ $ lsusb

可以看到usb摄像头的一些信息。见红框;

或则输入:

pi@raspberrypi:~ $ ls /dev

可以看到 红框中有 video0 设备 也可以说明 usb摄像头 正常运行

2 .安装MJPG-Streamer

依次通过以下命令 安装 (直接复制粘贴即可)

pi@raspberrypi:~ $ sudo apt-get install cmake libjpeg8-dev
pi@raspberrypi:~ $ wget https://github.com/Five-great/mjpg-streamer/archive/master.zip
pi@raspberrypi:~ $  unzip mjpg-streamer-master.zip
pi@raspberrypi:~ $ cd mjp*g-*
pi@raspberrypi:~/mjpg-streamer-master $ cd mjpg-*
pi@raspberrypi:~/mjpg-streamer-master/mjpg-streamer-experimental $ make
pi@raspberrypi:~/mjpg-streamer-master/mjpg-streamer-experimental $ sudo make install
pi@raspberrypi:~/mjpg-streamer-master/mjpg-streamer-experimental $ cd home
pi@raspberrypi:~ $ 

上面的包源已经发生变化 可前往https://fivecc.coding.net/public/mjpg-streamer/mjpg-streamer/git 查看,

直链下载:https://fivecc.coding.net/p/mjpg-streamer/d/mjpg-streamer/git/archive/master/?download=true 并解压

或者 通过 git 方式 无需解压

git clone  https://e.coding.net/fivecc/mjpg-streamer/mjpg-streamer.git

执行如下操作

pi@raspberrypi:~ $ sudo apt-get install cmake libjpeg8-dev
pi@raspberrypi:~ $ git clone https://e.coding.net/fivecc/mjpg-streamer/mjpg-streamer.git
pi@raspberrypi:~ $ cd mjpg-*
pi@raspberrypi:~/mjpg-streamer-master $ cd mjpg-*
pi@raspberrypi:~/mjpg-streamer-master/mjpg-streamer-experimental $ make
pi@raspberrypi:~/mjpg-streamer-master/mjpg-streamer-experimental $ sudo make install
pi@raspberrypi:~/mjpg-streamer-master/mjpg-streamer-experimental $ cd
pi@raspberrypi:~ $ 

一路没报错 就安好了

下面我们先来分析一下mjpg_streamer这个功能的结构:

Mjpg_streamer.c           /* 主程序主要运行如下几个部分 */
input_init();             /* 输入相关的初始化 */

output_init(); /* 输出相关的初始化 */
input_run(); /* 运行输入函数,采集输入数据*/
output_run(); /* 输出初函数,把数据收集起来通过网络socket发送出去 */

3.启动 MJPG-Streamer

3.1  输入以下命令

pi@raspberrypi: ~ $ /usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 1280x720" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"

见到如下便是成功了

3.2参数说明:

-i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 1280x720"

-i 输入

input_uvc.so:UVC输入组件

-f  30             :表示30帧

-r 1280*720     :分辨率

-y                   :YUV格式输入(有卡顿),不加表示MJPG输入(需要摄像头支持)

-o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"

-o 输出

output_http.so          :网页输出组件

-w www                                  : 网页输出

-p 8080                                   :端口   8080

-d 1000                                   : 时间1S

4.实时视频接收

1)可以直接打开网址 http://<树莓派ip>:<port>/javascript.html

2)  创建一个.html 文件 就可以访问

index.html

<!DOCTYPE html>
<html>
<head>
<title>实时视频</title>
<style>#webcam{width: 80%;height: 80%;display: block;margin: 10% auto;text-align: center;position: relative;}#webcam img{width: 100%;height: auto;display: block;margin: 0 auto;}
</style>
</head>
<body><div id="webcam"><div></div>
</div><script type="text/javascript">var imageNr = 0; // 图片的索引号var finished = new Array(); // 下载图片的队列var paused = false; //function createImageLayer() {var img = new Image();img.style.position = "absolute";img.style.zIndex = -1;img.onload = imageOnload;img.onclick = imageOnclick;//填你对应的ip和端口img.src = "http://172.19.8.176:8080/?action=snapshot&n=" + (++imageNr);var webcam = document.getElementById("webcam");webcam.insertBefore(img, webcam.firstChild);}function imageOnload() {this.style.zIndex = imageNr; while (1 < finished.length) {var del = finished.shift(); // 删除旧照片del.parentNode.removeChild(del);}finished.push(this);if (!paused) createImageLayer();}function imageOnclick() { paused = !paused;if (!paused) createImageLayer();} createImageLayer()
</script>
</body>
</html>

视频效果:

树莓派 USB摄像头 实现网络监控( MJPG-Streamer)相关推荐

  1. 减少USB 1.1 2.0 端口驱动程序延时_树莓派 USB摄像头 实现网络监控( MJPG-Streamer)...

    MJPG简介: MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名. MJPEG 全名为 "Motion Joint Photographic Experts Group&q ...

  2. 树莓派+USB摄像头进行网络监控—MJPG-Streamer

    一.硬件材料 1.树莓派3或3B+ 2.电脑 3.USB摄像头 二.检查树莓派是否已加载USB摄像头 输入命令行 also usb 或者输入 ls /dev 三.安装NJPG-Streamer 依次输 ...

  3. 另外一种方式:用USB摄像头实现网络监控

    另外一种方式:用USB摄像头实现网络监控 joyhope 5 主题 0 好友 300 积分 二级RPier 该用户从未签到 银元 75 块 声望 2 点 票子 178 张 精华 0   发消息 沙发 ...

  4. 树莓派+USB摄像头自制网络摄像头

    1. 摄像头功能支持 终端输入lsusb看拔插前后USB设备情况,新增usb设备后终端输入ls /dev/video*看到video0设备即摄像头在线. 2.安装依赖 sudo apt-get ins ...

  5. 树莓派usb摄像头网络监控(定时拍照+网络存储)

    (一)树莓派使用USB摄像头 说明最好是linux下能支持的uvc摄像头,我用的uvc301的摄像头,linux下一般免驱. 1.首先更新firmware: rpi-update是老外开发的一个更新树 ...

  6. 树莓派+USB摄像头+Yeelink--5分钟内DIY你自己的家庭监控

    5分钟一点也不夸张, 在你熟悉Yeelink使用的情况下, 你真的只需几分钟就可以搭建一套在线图像监控, 神马入室小偷啥的, 还能逃过你的千里眼 当然, 要是使用motion来获取图像, 还能做到画面 ...

  7. 树莓派+USB摄像头+yeelink实现云监控

    一.配置USB摄像头 检查摄像头是否被树莓派检测到 输入命令: $ lsusb 查看输出信息 如上图我们可以看到camera的信息,如果没有你的摄像头的信息,那么有可能你的树莓派的电源无法供应足够的电 ...

  8. 智能家居(12)——树莓派USB摄像头捕捉人脸并识别

    树莓派摄像头捕捉人脸并识别 一.USB摄像头监控.拍照 二.树莓派安装libcurl和openssl库 三.拍照的关键指令: 四.源码及步骤 参考原文: https://blog.csdn.net/N ...

  9. 树莓派 —— USB 摄像头简单测试 (拍照 视频)

    一.硬件连接 插入 USB 摄像头插入树莓派 USB 口中(注意:摄像头需要支持 Linux USB免驱动) 使用命令查看插入的USB设备,插入前查看一次,插入后再查看一次,新增的那个就是插入的 US ...

  10. 树莓派 —— USB 摄像头简单测试 (拍照 录像)

    一.硬件连接 插入 USB 摄像头插入树莓派 USB 口中(注意:摄像头需要支持 Linux USB免驱动) 使用命令查看插入的USB设备,插入前查看一次,插入后再查看一次,新增的那个就是插入的 US ...

最新文章

  1. VS让人纠结的Release和网站一键发布
  2. protobuf message定义_巧用 Protobuf 反射来优化代码,拒做 PB Boy
  3. Use grep to report back only line numbers
  4. 从json数组中获取某一属性的集合
  5. Practice:Demonstrating the Key TCP/IP Protocols
  6. 游戏程序中的骨骼插件
  7. ubuntu切换python默认版本从2.7到3.5后 报错 ImportError: No module named 'pip'
  8. CVPR 2020-FaceShifter:能够应对脸部遮挡的高保真换脸方法
  9. WPF StackPanel控件使用方法
  10. JSP的九大内置对象
  11. 关于虚拟机,影子系统和游戏机器码的问题
  12. word中更新目录中只更新页码和更新整个目录的区别
  13. 看黑客如何在Black Hat 2016上5秒干掉 macOS 系统,“催吐”ATM机| 宅客周刊
  14. [转]将106键盘布局(日式键盘布局)改为101键盘布局(美式键盘布局)(
  15. 《好妈妈胜过好老师》书摘
  16. 网易云音乐 真实地址
  17. Java多态(面试考点,不要因为基础而忽视)
  18. 史上最大界面升级!微软 Windows 10 21H2!
  19. [Appium] App自动化-元素定位
  20. MobaXterm登录堡垒机/跳板机

热门文章

  1. syncnavigator关于win10、win8系统无法注册机进行激活的问题
  2. 单片机烧写一次后,就连不上单片机了的一种可能原因分享
  3. 中兴配置dhcp服务器,中兴ZXR10 5928三层交换机DHCP配制步骤
  4. 萤石云视频PC客户端v2.6.14.0官方最新版
  5. 使用clickhouse即席查询
  6. itextpdf解决PDF合并的问题
  7. CentOS加入Windows域
  8. FPGA20个例程专栏介绍
  9. 解决树莓派aplay找不到声卡的问题
  10. qtoolbutton设置图标大小及文字位置