转 自:http://bbs.hdchina.org/viewthread.php?tid=94749

mjpg-streamer 可以通过文件或者是HTTP方式访问linux UVC兼容摄像头。可以在公司,通过访问家里安

装的摄像头查看家里的情况,对于有小孩的家长很有帮助。



如果刚好手头上一个能安装openwrt带USB接口的路由器,可以使用本文介绍的方法来配置。

我现在用的罗技的C270,效果不错。



mjpg-streamer 需要很少的CPU和内存资源就可以工作,大部分编码工作都是摄像头完成的,所以对于内

存和性能都有限的路由器十分适用。



1. 安装



在openwrt系统下,需要安装以下摄像头的驱动。

opkg install kmod-video-uvc kmod-usb2 kmod-video-core



如果能找到 /dev/video0 的设备文件,就说明驱动已经安装成功。

如果没有成功,罗技的摄像头还可以尝试一下安装kmod-video-pwc。



在openwrt系统下面,安装mjpg-streamer很简单。

opkg install mjpg-streamer



如果是ubuntu系统,可以从下面的网址下载安装包。

http://sourceforge.net/projects/mjpg-streamer/files/mjpg-streamer_r94-1_i386.deb/download 



安装完了之后,运行

/etc/init.d/mjpg-streamer start

就可以启动了。



2. 使用



在firefox浏览器里面输入 http://192.168.1.1:8080/?action=stream ,应该能看到摄像头抓取的视频。



这个视频的帧数很低,显得摄像头反应很慢。可以修改/etc/config/mjpg-streamer里面的fps参数。



如果想在公司访问家里的摄像头,还应该修改防火墙,接受8080端口的外网请求。

添加下面配置到 /etc/config/firewall

config rule

        option src              wan

        option proto            tcp

        option dest_port        8080

        option target           ACCEPT



然后重启防火墙 /etc/init.d/firewall restart,就可以了。



外网访问摄像头的时候,如果看视频可能速度会跟不上,可以只看截屏。

http://192.168.1.1:8080/?action=snapshot

需要将192.168.1.1替换成路由器说使用的公网IP地址



3. 配置用户名和密码



mjpg-streamer 还可以使用用户名和密码来**访问。

修改 /etc/init.d/mjpg-streamer 中的

         [ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port" &



         [ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port -c user:pass" &



最后添加的部分就是用户名和密码,中间用冒号分割。重新启动mjpg-streamer,保证配置生效。

/etc/init.d/mjpg-streamer restart

远程摄像头软件mjpg-streamer使用指南的更多相关文章

  1. 多服务器 vps 管理方法,十款远程桌面软件测评分析

    作为运维工作者,从几年前巨大的工作量到如今有了极大的改善,这些年试用的远程桌面管理软件不在少数. 远程桌面是微软公司为了方便网络管理员管理维护服务器而推出的一项服务.从windows 2000 ser ...

  2. 基本介绍LINUX远程PC软件:PUTTY、SecureCRT、X-Manager

    ***********************************************声明************************************************ 原创 ...

  3. 很好用的取代 PuTTY 的SSH远程登陆软件 Termius

    一直以来, 我都是用 PuTTY 一个窗口一个窗口来监视我所有的远程服务器. putty-connections-on-a-screen 总感觉非常的不方便, 特别是当远程链接断开需要再重新打开PUT ...

  4. TTradmin v2.1 【2019年12月12日更新】简单好用的临时远程协助软件

        TTradmin 是一款免端口映射可直接穿透任何内网,基于VNC核心的即时远程协助软件.在使用的时候只需要保证“协助端”和“被协助端”使用同一个验证码即可实现安全便捷的远程控制,不需要进入路由 ...

  5. Linux web工程部署远程必备软件安装

    一.序 最近在将程序往linux上面部署,特此记录下部署步骤,待以后参考. web工程部署必备软件为:JDK.tomcat.数据库软件(oracle或mysql),远程监控.上传下载必备软件:VNC. ...

  6. 使用pymysql和paramiko实现远程安装软件

    通过pymysql模块调用数据库获取安装信息,通过paramiko模块远程传输脚本并执行来安装软件,本文以安装apache为例. 创建apache安装信息数据表install_apache,设定三个字 ...

  7. 远程桌面软件RDCMan汉化版

    自己汉化的远程桌面控制软件RDCMan--Remote Desktop Connection Manager(RDCMan) v2.7 简体中文汉化版. 介绍 Remote Desktop Conne ...

  8. 第十八篇 Linux环境下常用软件安装和使用指南

          提醒:如果之后要安装virtualenvwrapper的话,可以直接跳到安装virtualenvwrapper的方法,而不需要先安装好virtualenv   安装virtualenv和生 ...

  9. 远程连接软件TeamViewer

    (1)先在windows下安装Teamviewer软件,地址:https://pan.baidu.com/s/1rWxRBtNbn3OMmg-8YaYWRQ (2)再在linux下安装Teamview ...

随机推荐

  1. springmvc文件上传的基本描述

    SpringMVC的文件上传,底层也是使用的Apache的Commons-fileupload 可以分为三步: 1.导入依赖包 <!-- 文件上传的依赖 --> <dependenc ...

  2. 堆栈在linux内存中的使用

    链接:https://www.zhihu.com/question/57013926/answer/151506606 1.Linux 内核中使用 task_struct 作为进程描述符,该结构定义在 ...

  3. Python根据内嵌的数字将字符串排序(sort by numbers embedded in strings)

    import re  re_digits = re.compile(r'(\d+)')  def embedded_numbers(s):       pieces = re_digits.split ...

  4. Node.js的原型继承函数 util.inherits

    转自:http://sentsin.com/web/179.html util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数.Java ...

  5. JavaScript -- 正则表达式 检验表单提交的内容

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. hdoj1012--u Calculate e

    Problem Description A simple mathematical formula for e is where n is allowed to go to infinity. Thi ...

  7. JMeter正则表达式提取器说明

    Apply to:应用范围 要检查的响应字段:样本数据源. 引用名称:其他地方引用时的变量名称,引用方法:${引用名称} 正则表达式:数据提取器,如上图的 "sysNo":&quo ...

  8. js桥接模式

    桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化. 抽象化和实现部分在一起,桥接模式的目的就是使两者分离,根据面向对象的封装变化的原则,我们可以把实现部分的变化封装到另外 ...

  9. ES6-let命令

    let命令 用于声明变量,但是声明的变量只能在let命令所在的代码块内有效, { let a = 10; var b = 1; } 其中,a在代码块的外部是调用不到的.对于for循环的计数器里面,就很 ...

  10. web自动化:元素定位(二)

    一. 实例 如何定位到下图第二个"抢投标",有一种方法是利用xpath定位 //a[@href="/loan/loan_detail/Id/7190.html" ...