树莓派3--学习笔记5-mjpg视频流监控 (二)

项目源码分析参考博客:http://blog.csdn.net/pengrui18/article/details/8146814
参考博客:http://www.360doc.com/content/12/0706/10/9305922_222567049.shtml
GitHub项目地址:https://github.com/jacksonliam/mjpg-streamer

MJPG的介绍:


 我们需要一个input-plugin来提供图片。
input-plugin负责产生图片并把这些复制到内存中去。
output-plugin则负责把这些内存中的图片取出来以便后续的处理。最常用的是webserver-output-plugin, 他允许将图片传送到网络浏览器上。mjpg-streamer充当粘合剂的角色,把这单一的input-plugin和众多的output-plugin 给连在一起,而几乎所有的工作都交给了这些个插件。

这里写图片描述


Input-Plugins

像其他普通的input-plugin一样,这些个插件工作是把JPEG格式的图片拷贝到全局可访问内存中,接着给等待进程发送信号

input_testpicture

这个模块编译的时候已经加入了图片(正如其名:test),就是说你没摄像头也能进行测试工作(你编译的对不对)。他也为你提供了一个模板,一个你想写自己 的input-plugin的模板,因为他被实现的尽可能的简单易懂。它的作用就是把由testpictures模块得到的JPEG-files文件转变 成一个头文件,这个头文件包含了一些被编译进testpictures模块的图片(前面说过了)。当被激活时就会不停的往复上面的那个动作:获得 ->转变。

input_uvc

如其名她从兼容Linux-UVC V4L2标准的设备中抓取图片。像Logitech Quickcam Sphere AF等等国产的有 ZC0303。 她的源码是基于开源项目”luvcview”,当然做了很多方面的修改了。与”luvcview”不同的是,他初始化罗技他们家的摄像头时用 pan/tilt/focus命令即可。而无需库的帮忙、摆弄XML文件或者udev规则(设备文件在系统中出现的方式)。现在很流行这种输入插件,得益 于它能够在不增加CPU负载的情况下以大于15fps(frame per second)速率来将相片编码成960x720象素大小。如果你有钱不用考虑CPU的负载问题,大可进行1600x1200象素(厉害)的无压缩的编 码,然后用软件实现压缩并传到客户端!

input_control

这 个模块只实现了pan/tilt的控制接口,就是说他把视频流的功能交给了其他程序(Linux中很推崇”简洁”,就是一款软件一个功能,效率至上,功能 有软件数量保证)。曾经用他提供了一个网络接口以允许通过网络实现pan/tilt我的罗技Orbit AF,当然Skype就来补充音、视频流的功能了。当我们通过Skype要开远程会议的时候,她工作的非常好,看不见的手时候还方便他们控制这个摄像头多 好啊。


Output-Plugins

output_http

这 绝对是个全版本的符合HTTP1.0标准的webserver。可以在单独的文件夹中提供文件访问,也可以执行一些命令。例子是,你可以访问从输入 plugin(见上文)获得的JPEG文件,或者按照M-JPEG标准编码他们。可以从一个文件夹提供服务意味着你可以定制你自己的网页,比如嵌入图片啊 神马的。你可以参见MJPG-streamer 包中的例子。有点重要的是,多个实例是可以并发运行的,这意味着多个server-threads进程可以处理不同的密码(不同的请求)啊,呈现的布局啊 或者有限制的命令。

output_file

这个模块是用来把JPEG图片存储到指定的文件夹中。你一可以用来抓取图片并只是存取,当然你也可以在存储完之后通过执行命令把他们提交到FTP服务器上!你可以在output_file页参看更多的文档。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页