admin 管理员组

文章数量: 887019

最近接了个项目,项目中有一个远程监控的功能,最好用网页就能查看摄像头画面。

通过几天的查找资料,找到了一个相对简单的解决方案:借助一个名为“MJPG-Streamer”的web开源项目,可以在局域网中用web查看摄像头画面,之后再通过内网穿透的方式,将一个购买的域名映射到这个局域网,之后就可以通过web查看摄像头的画面。

 经过一天一夜的测试,除了中间树莓派wifi断过一次导致网页访问失败,其余都十分顺利。我甚至还找来了放假回到全国各地的同班同学帮忙测试,测试结果也是没问题的。话不多说,接下上教程。

一共分两步

1.搭建“MJPG-Streamer”

2.内网穿透

 

 

〇 、前期准备

树莓派烧录好系统、换源、调试好摄像头(原装或者usb摄像头都可)  具备简单的终端操作知识

 

一、搭建“MJPG-Streamer”

  MJPG简介: 

       MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名. 
  MJPEG 
  全名为 “Motion Joint Photographic Experts Group”,是一种视频编码格式, 
  Motion JPEG技术常用与闭合电路的电视摄像机的模拟视频信号“翻译”成视频流,并存储在硬盘上。典型的应用如数字视频记录器等。MJPEG不像MPEG,不使用帧间编码,因此用一个非线性编辑器就很容易编辑。MJPEG的压缩算法与MPEG一脉相承,功能很强大,能发送高质图片,生成完全动画视频等。但相应地,MJPEG对带宽的要求也很高,相当于T-1,MJPEG信息是存储在数字媒体中的庞然大物,需要大量的存储空间以满足如今多数用户的需求。因此从另一个角度说,在某些条件下,MJPEG也许是效率最低的编码/解码器之一。 
  MJPEG 是 24-bit 的 “true-color” 影像标准,MJPEG 的工作是将 RGB 格式的影像转换成 YCrCB 格式,目的是为了减少档案大小,一般约可减少 1/3 ~ 1/2 左右。 

安装命令  在终端中输入

 sudo apt-get install cmake libjpeg8-dev
 wget https://github/jacksonliam/mjpg-streamer/archive/master.zip
unzip master.zip
cd mjp*g-*
cd mjpg-*
make
sudo make install 

 此时安装就成功了

接下来开启这个局域网监控  在终端中输入

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 320x180" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"

 

出现这个画面  表示开启成功  (终端不能关,除非要结束监控) (320x180是分辨率,分辨率低才能不卡顿)

在连接局域网或者同一wifi下的任意设备中  ,用浏览器打开  http://192.168.137.45:8080/javascript_simple.html

将其中192.168.137.45换成自己的树莓派ip地址。(可通过vnc快速查看ip)

 

 

我用树莓派打开网址,看到的画面是这样的。

至此,MJPG-Streamer便搭建成功。

 

二、内网穿透

 

什么是内网穿透?

有时候,我们在外想要访问家里主机的资料,要么由于主机处于家庭路由器下,是非公网IP,要么就是是运营商随机分配的一个公网IP,都很难直接连上主机获取资料。那么,有什么办法可以解决这一难题?答案就是 内网穿透

这里我们借助花生壳来进行内网穿透。(优点:最简单省事的方式,不需要经常维护,随用随开;缺点:开通一年域名要6元)

1.首先在树莓派上下载花生壳的 驱动
http://service.oray/question/2680.html

2.安装 dpkg -i phddns_rapi_3.0.3.armhf.deb

(phddns_rapi_3.0.3.armhf.deb为安装包名称   可能安装包更新 名字会有变化)

3.安装成功后,将显示此树莓派的SN码、默认密码以及远程管理地址。默认密码为:admin

 

4.配置花生壳 

浏览器输入远程管理地址b.oray进入花生壳远程管理页面
输入安装花生壳时生成的SN码及默认密码admin进入;

首次登录,需要进行初始化:重设密码,填写手机,发送验证码;

初始化成功,系统自动赠送一个免费域名;但是不支持内网穿透,如需使用内网穿透功能,要自行开通;

应用名称和域名自己填,映射类型选择HTTP,外网端口选默认80,内网主机填"127.0.0.1",内网端口填“8080”,然后点击开启映射服务。到这里内网穿透就完成了

 

5.确保以上操作都已顺利完成,你可以开始使用树莓派的远程监控服务了。

6.开始测试

首先 打开一个终端输入

 /usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 320x180" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"

其次再打开一个终端  开启花生壳映射程序

 sudo phddns start  (关闭用 sudo phddns stop)

保持两个终端,不关闭

此时用任意一个浏览器打开  注册的域名

比如我的  http://286b3261x1.wicp.vip  

 

 

 

 

 

如果不需要界面中这么多文字  ,可以点击提示中的“此处”  就会出现以下画面

 

三、远程测试

我找了我初中同学——李同学来协助测试

以下是他实时看到的画面(延迟可以忽略不计)

 

 

 

 

本文标签: 异地 远程监控 树莓派 WEB