Dragonboard410c Android USB Camera 使用:mjpg-streamer介绍(一)

原创 2017年07月06日 10:36:17

mjpg-streamer是一款免费基于IP地址的视频流服务器,从webcam摄像头采集图像,把它们以流的形式通过基于ip的网络传输到浏览器端,如火狐、Cambozola和VLC播放器等。它可以利用某些webcam的硬件压缩功能来降低服务器CPU的开销。为嵌入式设备和一些常规服务器提供一个轻量且更少CPU消耗的方案。

在其源代码中主要围绕linux的v4l2接口(注意低版本内核不存在v4l2接口因此无法使用)、socket网络编程、多线程编程。其中还包含重要的插件input-plugins和output-plugins。

mjpg-streamer采用模块化的设计方法,以功能块为单位进行描述,这些功能块被称为plug-in(组件)。软件中定义好了各组件的输入、输出,以及组件之间的衔接关系。用户可自行根据对功能的需求,选择需要的模块。这种模块化的程序设计简化了代码的编写、调试、维护,程序员只需要遵守设计的规范,就可以轻松地改写软件,或者编写新的模块以增强软件的功能。

input_uvc <——————– ——————–> output_autofocus

input_file <——————– MJPG-streamer ——————–> output_file

input_testpicture <——————–

input-plugins从摄像头读取视频数据,并将视频数据复制到内存中,output-plugins将这些视频数据进行处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中,mjpg-streamer的工作就是将其中的一个输入插件和多个输出插件绑定在一起,所有的工作都是通过它的各个插件完成的。

mjpg-streamer源码包可从SourceForge网站下载使用,也可以到我的github中下载。
https://github.com/chenguangxiang/mjpg-streamer

其中的几个重要插件:

  • input_testpicture.so
    这是一个图像测试插件,它将预设好的图像编译成一个头文件,可以在没有摄像头的情况下传输图像,从而方便调试程序。
  • input_uvc.so
    此文件调用USB摄像头驱动程序V4L2,从摄像头读取视频数据。
  • input_control.so
    这个文件实现对摄像头转动的控制接口。
  • output_http.so
    这是一个功能齐全的网站服务器,它不仅可以从单一文件夹中处理文件,还可以执行一定的命令,它可以从输入插件中处理一幅图像,也可以将输入插件的视频文件根据现有M-JPEG标准以HTTP视频数据服务流形式输出。
  • output_file.so
    这个插件的功能是将输入插件的JPEG图像存储到特定的文件夹下,它可以用来抓取图像。

mjpg-streamer视频流服务器,模块结构清晰,易于管理,利用现有网络资源,很容易实现远程的网络视频采集,克服了现有视频采集的距离问题,开发简单,可移植性高,并且系统运行稳定。

版权声明:本文为博主原创文章,欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/cgx090902(未经允许严禁用于商业用途!)

mjpg-streamer学习笔记9---自己写客户端

1、现象演示 (1)在开发板上运行mjpeg-streamer服务器 在串口上运行以下指令 (2)进入虚拟机,让虚拟机中的ubuntu系统连接上wifi热点(点右上角的那个标志)S3C2440 ...
  • qingkongyeyue
  • qingkongyeyue
  • 2016年10月16日 11:56
  • 2385

基于android的智能家居之一MJPGstream

从开学开始一直想做点东西,于是就利用手头的MINI2440 在课余时间做了个基于android的智能家居,时间有限只是粗略的实现了基本功能。将会陆续贴出所有步骤供大家指证参考。(本人大菜鸟一只,欢迎大...
  • ziyiyunmen
  • ziyiyunmen
  • 2013年12月04日 11:40
  • 1373

Dragonboard410c Android USB Camera 使用:mjpg-streamer 在ubuntu16.04安装与使用(二)

mjpg-streamer是基于jpeg库来处理摄像头数据的,因此在移植使用mjpg-streamer之前必须先安装或移植jpeg库,否则在编译mjpg-streamer时会报告错误。1、先更新apt...
  • cgx090902
  • cgx090902
  • 2017年07月06日 11:17
  • 945

mjpg-streamer学习笔记7------输出通道

output_http.c里面  1、output_init()函数 /* 该函数只是解析参数,然后给相应的变量赋值 */ 2、 output_run()函数 int output_run(int ...
  • qingkongyeyue
  • qingkongyeyue
  • 2016年10月15日 17:07
  • 775

Linux下MJPG-Streamer视频服务器搭建

编译jpeg库 1.解压源码 tar xvf jpegsrc.v8b.tar.gz 2.配置源码 cd jpeg-8b ./configure --prefix=/usr/local/jpe...
  • u010439291
  • u010439291
  • 2016年03月13日 21:50
  • 1214

Mjpg-Streamer 拍照功能移植

原文地址:http://wenku.baidu.com/view/7105e6c15fbfc77da269b1f4 http://bbs.csdn.net/topics/350052487十三楼...
  • YU254675752
  • YU254675752
  • 2012年12月24日 16:15
  • 991

mjpg-streamer学习笔记5----输入通道

input_uvc.c 1、input_init函数 int input_init(input_parameter *param) 设置默认参数 { char *argv[MAX_ARGUMENTS]...
  • qingkongyeyue
  • qingkongyeyue
  • 2016年09月24日 16:37
  • 882

mjpg-stream的移植

MJPG简介:  MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名.   MJPEG   全名为 “Motion Joint Photographic Experts Group...
  • cqybhjz
  • cqybhjz
  • 2016年05月27日 15:35
  • 5935

网页监控系统设计之使用mjpg-streamer

开始我们使用的是servfox和spcaview来搭建网页监控系统框架的,参考这篇文章: “WEB网页监控系统的设计框架思路详解”,今天我教给大家一个更好的方法,通过mjpg-streamer来搭建网...
  • qq_21792169
  • qq_21792169
  • 2016年04月10日 13:20
  • 15250
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Dragonboard410c Android USB Camera 使用:mjpg-streamer介绍(一)
举报原因:
原因补充:

(最多只允许输入30个字)