手把手教你做一个物联网视频监控项目(一) 介绍 您所在的位置:网站首页 视频监控平台建设方案范文大全 手把手教你做一个物联网视频监控项目(一) 介绍

手把手教你做一个物联网视频监控项目(一) 介绍

2024-01-29 11:20| 来源: 网络整理| 查看: 265

春招实习十二面的面经

文章目录 前言一、文章系列内容介绍二、软硬件准备三、方案介绍mjpg-streamer流媒体方案 参考资料

前言

最近想做一个安防相关的项目,所以需要储备视频监控方案的相关知识,冲韦东山老师的视频中学到了相关知识,很好地满足我的需求。特将学习的整个过程、笔记记录下来,本系列文章将会引用许多韦老师项目的内容,有兴趣的同学可以去看看韦老师的这个课程,原理讲得不深,但是单纯应用绝对够用 韦东山老师手把手带你从0开始自己做一个视频监控项目

一、文章系列内容介绍

本文章介绍有2种视频监控方案,一种可以运行在低性能的板子上,另一种是热门的流媒体方案 1.MJPG-streamer方案 本系列的第二篇文章会讲解: MJPG-streamer的移植、使用、框架讲解,代码讲解等内容 2.流媒体方案 本系列的第三篇文章会讲解: 流媒体方案的实现之ffmpeg的移植、使用、内部流程、参数讲解等内容; 流媒体方案的实现之Nginx的移植、多场景使用等; 3.摄像头和声卡接口 摄像头V4L2接口、声卡ALSA接口的相关函数分析及介绍 4.内网穿透 原理、两种实现方法等内容

二、软硬件准备

硬件:a. 100ASK_IMX6ULL开发板 (或其他Linux开发板);b. USB摄像头 软件:a. Ubuntu(可以用虚拟机安装Ubuntu);b. Buildroot(Buildroot会自动下载其他软件: MJPG-streamer, ffmpeg, nginx);c. 内网穿透软件: 花生壳5.0

三、方案介绍 mjpg-streamer

如果只是想在客厅查看房间的情况,不需要什么复杂的协议,我们可以用这种方案。 作为程序员,我们需要写2个程序:

在连接摄像头的ARM板子上,实现一个服务器程序:它一边读取摄像头数据,一边等待客户端连接并发送数据。在手机或电脑上,编写客户端程序,它会从ARM板上获得数据并显示出来。

这2个程序之间,并不需要实现复杂的协议,只需要约定数据格式并传输一帧帧的数据。 实际上,我们可以使用现成的程序: mjpg-streamer,它可运行在ARM板上,在手机上使用浏览器直接观看视频 在这里插入图片描述

方案优点: 程序简单,所有源码一目了然,便于学习 对ARM板的性能要求不高,主频200MHz的ARM芯片也能实现 方案缺点: 只能实现局域网内的视频监控 要实现互联网视频监控,需要另外实现内网穿透 mjpg-streamer没有实现声音传输 mjpg-streamer项目已经不再维护,仅仅建议用于学习

流媒体方案

作为程序员,我们需要写3个程序:

在连接摄像头的ARM板子上,实现一个推送程序:它一边读取摄像头数据,一边把数据推送给服务器在服务器上,实现“流媒体服务器”程序:它接收ARM板发来的数据,并把数据转换格式后发给手机等客户端在手机等客户端上,实现拉取程序:它从服务器上拉取数据,并显示出来

实际上,我们可以把互联网功能去掉: 把“推送程序”、“流媒体服务器”程序,都在ARM板上运行;手机等客户端只能在同一个局域网里观看视频 或者也使用内网穿透技术实现互联网视频监控 在这里插入图片描述 我们并不需要从头实现这些功能: 推送程序:可以用ffmpeg 流媒体服务器程序:可以用Nginx 客户端程序:可以用VLC浏览器 为此,我们需要了解一些协议: 有很多流媒体协议 RTMP、HTTP-FLV、HLS等,后面流媒体方案中我们用到了前两种协议。 在这里插入图片描述 在这里插入图片描述流媒体服务:两端加一服 注意: RTMP可以用在双端 HTTPFLV 、HLS 只能用在拉流端

参考资料

HTTP-FLV直播初探 https://www.cnblogs.com/saysmy/p/7851911.html 理解RTMP、HttpFlv和HLS的正确姿势 https://www.jianshu.com/p/32417d8ee5b6 韦老师视频监控项目 https://www.bilibili.com/video/BV1fD4y1S7hT?p=6



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有