当前位置: 首页 > news >正文

mjpg-streamer译文

原文:http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page

About the project   

"MJPG-streamer",是用于从webcam摄像头采集图像,把他们以流的形式通过基于ip的网络传输到浏览器如Firehox,Cambozola,VLC播放器,Windows的移动设备或者其他拥有浏览器的移动设备。她可以利用某些webcams的硬件压缩功能来降低服务器CPU的开销。她为嵌入式设备和一些常规服务器提供了一个轻量且更少CPU消耗的方案,因为她无需为视频帧压缩浪费大量的计算效率(这件事交给硬件了)。例子是:在一个主频200MHz的路由器上(一个例子是cisco经典无线的linkfs WRT54G路由,其可以运行openWRT(迷你linux系统),主频200MHz,4MRAM,16Flash),流编码一个960x720像素的视频,她可以减少10%的cpu使用。

 

 

 

 

Screenshots

 


About the name

其他一些合适的名字有:MJPEG-streamer或者M-JPEG-streamer,由于在早期的项目中用的就是mpeg-streamer,所以我们决定保持原样。

 

 

What it does

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

Plugins

Input-Plugins

像其他普通的input-plugin一样,这些个插件工作是把JPEG格式的图片拷贝到全局可访问内存中,接着给等待进程发送信号(告他:我来了!想干哈干哈吧)。

 

input_testpicture.so

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

 

input_uvc.so

如其名她从兼容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.so

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

Output-Plugins

output_http.so

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

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

MoreProject Status

  • JavaScript Motion Detection
  • High resolution webcam with 1600x1200 pictures
  • Usage

                         

转载于:https://www.cnblogs.com/hnrainll/archive/2011/06/08/2074916.html

相关文章:

  • 一起谈.NET技术,.NET Framework源码研究系列之---Delegate
  • gnu下的arm汇编伪指令:.word说明
  • re
  • python循环语句
  • DHCP中继
  • docker
  • 为何投奔BSD
  • 如何查看linux系统安装时间
  • Win XP多用户管理-单机多用户+网络多用户
  • github廖雪峰git
  • sql笔试
  • 一起谈.NET技术,在Mono 2.8上部署ASP.NET MVC 2
  • 设计模式的征途—15.观察者(Observer)模式
  • 一起谈.NET技术,走向ASP.NET架构设计——第三章:分层设计,初涉架构(中篇)...
  • 1111
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【笔记】你不知道的JS读书笔记——Promise
  • Angular 响应式表单 基础例子
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Js基础——数据类型之Null和Undefined
  • Logstash 参考指南(目录)
  • Node 版本管理
  • Object.assign方法不能实现深复制
  • Solarized Scheme
  • Vue.js源码(2):初探List Rendering
  • Vue小说阅读器(仿追书神器)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 电商搜索引擎的架构设计和性能优化
  • 京东美团研发面经
  • 一文看透浏览器架构
  • 终端用户监控:真实用户监控还是模拟监控?
  • 积累各种好的链接
  • ​secrets --- 生成管理密码的安全随机数​
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #define与typedef区别
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)大型网站架构演变和知识体系
  • .“空心村”成因分析及解决对策122344
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Micro Framework初体验(二)
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET实现之(自动更新)
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [c++] C++多态(虚函数和虚继承)
  • [cb]UIGrid+UIStretch的自适应
  • [codeforces] 25E Test || hash
  • [CSS]中子元素在父元素中居中