系统配置为RPi3+罗技C310
首先使用

$ v4l2-ctl --list-formats
$ v4l2-ctl --list-formats-ext

检查摄像头支持的格式。
一般摄像头会有两种视频模式:YUV和MJPEG。
YUV会占用大量系统资源(树莓派3上大概跑到640*480@30fps就是极限了,几乎耗尽系统资源),mjpeg占用资源率在10%左右。
直接从sourceforge上拖下来的版本不带-y参数不能工作(-y:YUV选项,不加这个参数的话默认是取摄像头buffer的mjpeg),需要打补丁编译。

准备工作

$ sudo apt-get install libv4l-dev libjpeg8-dev subversion imagemagick v4l-utils

libv4l-dev和v4l-utils一般已经装过了
然后是从sourceforge上下载源码

$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer
$ cd mjpg-streamer-code/mjpg-streamer

然后打上树莓派论坛上的补丁
具体方法为创建一个名为input_uvc_patch的文件,内容为

--- plugins/input_uvc/input_uvc.c       (revision 174)
+++ plugins/input_uvc/input_uvc.c       (working copy)
@@ -405,9 +405,13 @@if(pcontext->videoIn->formatIn == V4L2_PIX_FMT_YUYV) {DBG("compressing frame from input: %d\n", (int)pcontext->id);pglobal->in[pcontext->id].size = compress_yuyv_to_jpeg(pcontext->videoIn, pglobal->in[pcontext->id].buf, pcontext->videoIn->framesizeIn, gquality);
+            /* copy this frame's timestamp to user space */
+            pglobal->in[pcontext->id].timestamp = pcontext->videoIn->buf.timestamp;} else {DBG("copying frame from input: %d\n", (int)pcontext->id);
-            pglobal->in[pcontext->id].size = memcpy_picture(pglobal->in[pcontext->id].buf, pcontext->videoIn->tmpbuffer, pcontext->videoIn->buf.bytesused);
+            pglobal->in[pcontext->id].size = memcpy_picture(pglobal->in[pcontext->id].buf, pcontext->videoIn->tmpbuffer, pcontext->videoIn->tmpbytesused);
+            /* copy this frame's timestamp to user space */
+            pglobal->in[pcontext->id].timestamp = pcontext->videoIn->tmptimestamp;}#if 0
@@ -418,8 +422,6 @@prev_size = global->size;#endif-        /* copy this frame's timestamp to user space */
-        pglobal->in[pcontext->id].timestamp = pcontext->videoIn->buf.timestamp;/* signal fresh_frame */pthread_cond_broadcast(&pglobal->in[pcontext->id].db_update);
Index: plugins/input_uvc/v4l2uvc.c
===================================================================
--- plugins/input_uvc/v4l2uvc.c (revision 174)
+++ plugins/input_uvc/v4l2uvc.c (working copy)
@@ -450,6 +450,8 @@*/memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], vd->buf.bytesused);
+        vd->tmpbytesused = vd->buf.bytesused;
+        vd->tmptimestamp = vd->buf.timestamp;if(debug)fprintf(stderr, "bytes in used %d \n", vd->buf.bytesused);
Index: plugins/input_uvc/v4l2uvc.h
===================================================================
--- plugins/input_uvc/v4l2uvc.h (revision 174)
+++ plugins/input_uvc/v4l2uvc.h (working copy)
@@ -28,6 +28,7 @@#include <stdio.h>
+#include <stdint.h>#include <string.h>#include <fcntl.h>#include <unistd.h>
@@ -105,6 +106,8 @@int framecount;int recordstart;int recordtime;
+    uint32_t tmpbytesused;
+    struct timeval tmptimestamp;};/* context of each camera thread */

然后进行编译

$ patch -p0 < input_uvc_patch
$ make USE_LIBV4L2=true clean all
$ sudo make DESTDIR=/usr/local install

测试YUV模式

$./mjpg_streamer -i "./input_uvc.so -y -f 30 -r 640x480" -o "./output_http.so -w ./www"

测试mjpeg模式

./mjpg_streamer -i "./input_uvc.so -f 30 -r 1280x720" -o "./output_http.so -w ./www"

在电脑的浏览器中输入树莓派的http://树莓派ip:8080访问摄像头数据

Raspberry Pi的Mjpg-streamer配置相关推荐

  1. 树莓派4 Raspberry Pi 4B 正式发布和配置详解

    自2012年2月份开始发布初代树莓派起,树莓派一直都在嵌入式开发界很受欢迎,是一款性价比高.体积小的可编程的微计算机.同时作为目前比较火热的微型开发板之一,距离上一次树莓3的发布已经过去一段时间了,这 ...

  2. 基于香蕉派平台的Raspberry Pi操作系统安装与配置

    先说说硬件: bananapi pro,自带wifi模块 闲话不多少了,直奔主题... 1.系统烧录,这里在下载树莓派操作系统 2.使用PhoenixCard.exe烧录程序至TF卡中 3.插入TF卡 ...

  3. 在Raspberry Pi上安装DShield Honeypot

    A lightweight honeypot that contributes threat intelligence data to SANS Internet Storm Center (ISC) ...

  4. raspberry pi_如何在Raspberry Pi上创建盒装Internet

    raspberry pi 如果您是家庭学校的父母或预算有限的老师,那么框选式Internet可能正是您想要的. 它的硬件要求非常适中(Raspberry Pi 3.64GB microSD卡和电源), ...

  5. raspberry pi_使用Raspberry Pi配置业余无线电网关

    raspberry pi APRS( 自动数据包报告系统 )是一个用于业余无线电的全球数字通信网络,提供了一个单一的国家频道,人们可以在其中监视周围地区的情况. APRS使用分组无线电(AX.25), ...

  6. Raspberry Pi 3安装配置Raspbian过程

    1. 前期准备 硬件 Raspberry Pi 3主板 5V 1A安卓充电器及数据线 Samsung 64GB UHS-1 Class10 TF存储卡 TF卡读卡器 网线 HDMI高清线(可无) 支持 ...

  7. Raspberry PI 编译WLan驱动模块, 并配置登录WIFI

    1. 硬件说明: 手头的Raspberry PI 还是1代 B+型号. 出入无线网卡型号: Comfast, CF-WU835P, 树莓派一点反映都没有. windows下插入网卡, 提示芯片型号为: ...

  8. 树莓派4B【RaspBerry Pi 4 Model B】系统安装及配置教程

    安装树莓派系统 方式一[推荐]:通过官方镜像烧录器直接安装树莓派到TF(microSD)卡 下载Raspberry Pi Imager:https://www.raspberrypi.org/soft ...

  9. RASPBERRY PI wifi配置

    Raspberry Pi 手把手教你在树莓派上安装USB无线网卡支持WIFI 树莓派虽然已经有了有线网卡,但是并未配置无线网卡,移动性不够强,好在机器配备了2个USB口,当然要分一个出来给WIFI无线 ...

  10. 树莓派上手实战之把Raspberry Pi 配置成无线路由器

    原文 上 中 下 http://www.raspicn.com/thread-83-1-1.html http://www.raspicn.com/thread-84-1-1.html http:// ...

最新文章

  1. python学到什么程度可以写爬虫-小白python学到什么程度可以学习网络爬虫? ?...
  2. python函数图像平移_[Python图像处理]六.图像缩放,图像旋转,图像翻转与图像平移...
  3. 每天读一遍,不久你就会变
  4. HTML子div的宽度始终等于父div的宽度
  5. DEVICE_ATTR的使用
  6. 删除数据清理oracle表空间,oracle数据库删除无用表空间及数据文件过程
  7. C案例:创建顺序表并进行增删改查操作
  8. Android内存优化(二):一分钟发现内存泄漏
  9. 敏捷开发般若敏捷系列之一:序言
  10. 如何使用 SpringCloud 搭建服务注册中心?
  11. 微信小程序 - 列表并列多排显示
  12. 计算机cpu温度显示原理,电脑cpu温度怎么看
  13. pdf阅读神器推荐——PDF-XChange Editor V8
  14. 【Tomcat】修改密码
  15. 计算机网络最短路径算法SPF,spf算法(spf算法计算最短路径)
  16. 计算机电源故障维修方法,atx电源维修方法 atx电源常见故障【详细介绍】
  17. 腹肌锻炼视频(02):八种基本动作
  18. org.apache.ibatis.binding.BindingException: Mapper method 'com.hahah.atcrowdfunding.manager.dao.Cert
  19. 北鲲教程 | 基于扩展有限元的混凝土受力开裂计算分析
  20. 100倍分析性能提升 清华冠军团队用图数据震惊世界

热门文章

  1. 在阿里云服务器上搭建 SVN 服务端
  2. 常用云计算单词中英对照
  3. 我的世界java怎么开创造,MOD制作教程JAVA篇
  4. 命令行与shell编程系列之什么是命令行
  5. 新锐的美妆品牌,如何通过网红营销俘获海外消费者的芳心?
  6. DataCamp的intermediate python学习笔记(001)
  7. 【艺术奖】自戕行为作品获英格·莫拉丝奖
  8. 自适应铅笔黄色404页面源码
  9. Excel如何快速制作表格目录
  10. 营销经典案例收集(一)