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写视频显示客户端接收数据程序

mjpg_streamer主要做下面几个工作。 input_init(); output_init(); input_run(); output_run(); 自己写客服端:是参考mjpg_s...

基于android的智能家居之一MJPGstream

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Dragonboard410c Android USB Camera 使用:mjpg-streamer 移植到Android平台(三)

mjpg-streamer移植的android平台也很简单,只要写好Android.mk文件进行编译就行。由于mjpg-streamer是基于jpeg库来处理摄像头数据的,因此在移植mjpg-stre...

使用wm命令修改Dragonboard410c Android的显示分辨率

wm是高通平台(MTK平台类似的命令为am)下对手机分辨率、像素密度、显示区域进行设置的命令。具体如下图:可以看到,wm命令的参数还是比较少的,我们逐条来看下相关命令不同参数的使用:1.wm size...

玩转Dragonboard 410c USB摄像头——图像采集及web发布

看完前面几个blog 相信大家已经基本上会用Python脚本在Dragoboard 410c上进行各种关于USB摄像头图像采集的开发了,这里为了进一步让大家能够发挥UBS摄像头的作用,和方便大家在开发...
  • ANDYMFC
  • ANDYMFC
  • 2016年11月01日 17:59
  • 1320

玩转Dragonboard 410c USB摄像头-人脸识别

人脸识别是一个非常酷的技术,在移动支付、安防、娱乐等众多领域有着非常广泛的应用,今天就带大家一起来体验一下如何利用dragonboard 410c来实现人脸识别功能,这里我们使用的是USB摄像头,连接...
  • ANDYMFC
  • ANDYMFC
  • 2016年11月01日 16:41
  • 1420

玩转Dragonboard 410c USB摄像头——实时视频采集

视频采集和显示是很多应用的基础,特别是在DIY自己的创意的过程中,如果增加实时的视频采集和显示,可以让自己的DIY变得更加高大上,之前用C语言和PC机器做视频采集的时候,采用C语言或者java语言,需...
  • ANDYMFC
  • ANDYMFC
  • 2016年10月26日 16:37
  • 835

玩转Dragonboard 410c USB摄像头——人脸识别2

在http://blog.csdn.net/andymfc/article/details/52997050文章中,已经教大家如何利用Python实现人脸识别的第一个部分——人脸检测功能,今天在前面人...
  • ANDYMFC
  • ANDYMFC
  • 2016年12月01日 11:39
  • 872

树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像

网上有很多关于mjpg-stream移植到树莓派的文章,大部分还是使用的sourceforge.net上的mjpg-streamer-r63.tar.gz,该工程版本比较老,在新版系统中编译需要把源码...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Dragonboard410c Android USB Camera 使用:mjpg-streamer介绍(一)
举报原因:
原因补充:

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