Linux基础项目开发2:物联网监控——视频监控方案介绍(一)

news2024/9/21 16:24:32

前言:

这次我们来做一个关于视频监控的基础小项目,需要我们用到网络的相关知识,还会学到好多优秀的网络协议,下面让我们开始对物联网视频监控进行一个大体框架的介绍吧

目录

项目内容:

1.视频监控方案介绍

2.视频监控的作用

3.使用流媒体

4. 几种流媒体协议

5.流媒体服务:两端加一服 


项目内容:

1.视频监控方案介绍

介绍2种方案,一种可以运行在低性能的板子上,另一种是热门的流媒体方案MJPG-streamer

方案的实现

1.移植、使用                  2.框架,代码

流媒体方案的实现之ffmpeg

1.移植、使用                 2.内部流程                        3.参数讲解

流媒体方案的实现之Nginx

1.移植                            2.多场景使用

摄像头和声卡接口

1.摄像头V4L2接口        2.声卡ALSA接口

内网穿透

1.原理                           2.两种实现方法

 2.视频监控的作用

家居

        1.家庭安防               2.照顾老人、小孩        3.照顾宠物

公司

        1.仓库防火防盗        2.疫情防控(摄像头配合温度测试,自动检测体温)

农业

        1.大棚监测               2.研究记录

娱乐

        1.极限运动记录        2.风景拍摄

社会

        1.交通监测                2.安保

如果只是想在客厅查看房间的情况,不需要什么复杂的协议

 我们需要写2个程序:

        在连接摄像头的ARM板子上,实现一个服务器程序:它一边读取摄像头数据,一边等待客户端连接并发送数据

        在手机或电脑上,编写客户端程序,它会从ARM板上获得数据并显示出来

        这2个程序之间,并不需要实现复杂的协议

                        约定数据格式

                        传输一帧帧的数据

实际上,我们可以使用现成的程序:

        mjpg-streamer,它运行在ARM板上

        在手机上使用浏览器直接观看视频

mjpg-streamer优点:

        程序简单,所有源码一目了然,便于学习

        对ARM板的性能要求不高,主频200MHzARM芯片也能实现

 mjpg-streamer缺点:

        只能实现局域网内的视频监控

        要实现互联网视频监控,需要另外实现内网穿透

        mjpg-streamer没有实现声音传输

        mjpg-streamer项目已经不再维护,仅仅建议用于学习

3.使用流媒体

我们需要写3个程序:

        在连接摄像头的ARM板子上,实现一个推送程序:它一边读取摄像头数据,一边把数据推送给服务器

        在服务器上,实现“流媒体服务器”程序:它接收ARM板发来的数据,并把数据转换格式后发给手机等客户端

        在手机等客户端上,实现拉取程序:它从服务器上拉取数据,并显示出来

实际上,我们可以把互联网功能去掉:

        把“推送程序”、“流媒体服务器”程序,都在ARM板上运行;手机等客户端只能在同一个局域网里观看视频

        或者也使用内网穿透技术实现互联网视频监控

我们并不需要从头实现这些功能:

        推送程序:ffmpeg

        流媒体服务器程序:Nginx

        客户端程序:VLC浏览器

我们需要了解一些协议:

        程序一多,大家都遵守一些协议才好协同工作

        有很多流媒体协议

        STMP、HTTP-FLVHLS

 4. 几种流媒体协议

RTMP

        Real Time Messaging Protocol

        Adobe公司出品,需要Flash player才能观看

        延时小,适合直播

HttpFlv

        在HTPP上实现RTMP,传输的数据跟RTMP一样都是flv文件

        B站开源了flv.js,实现了纯HTML5观看直播,不再需要Flash player

        延时小,适合直播

        HttpFlv只能做直播,而RTMP可以实现更多操作        

        但是HttpFlv通过Http 80端口传输,穿透性强

HLS

        HTTP Live Streaming

        Apple出品

        延时大,适合看视频,不适合直播

 

5.流媒体服务:两端加一服 

注意:

        RTMP可以用在双端

        HTTPFLV 、HLS 只能用在拉流端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1304129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【模拟】LeetCode-48. 旋转图像

旋转图像。 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6]…

【NR技术】NR NG-RAN整体架构 -功能划分(三)

1 概述 NG-RAN节点包括: gNB,向终端提供NR用户平面和控制平面协议终端;ng-eNB,向终端提供E-UTRA用户平面和控制平面的协议终端。gNB和ng- eNB通过Xn接口相互连接。gnb和NG- eNB也通过NG接口连接到5GC,更具体地说,通过NG-C接口连…

[IDEA] 写代码时没有类型推断的解决方法

本示例使用scala, 其他语言同理 使用 .var 时会自动生成变量 使用快捷键 CtrlAtlv 一样 val abc "abc"但是这个变量没有显式表现类型 期望 val abc: String "abc" 解决方法

神经网络是如何工作的? | 京东云技术团队

作为一名程序员,我们习惯于去了解所使用工具、中间件的底层原理,本文则旨在帮助大家了解AI模型的底层机制,让大家在学习或应用各种大模型时更加得心应手,更加适合没有AI基础的小伙伴们。 一、GPT与神经网络的关系 GPT想必大家已…

教程 || 电脑端如何登录两个以上微信?

1、桌面上右键新建文本文档 2、重命名成“双开.bat”,点击 “是(Y)” 3、右键点击,选择编辑,输入: echo off start “” “D:\WeChat\WeChat.exe” start “” “D:\WeChat\WeChat.exe” exit 其中&…

_try_except原理探究

调用_except_handle3这个异常处理函数,这里并不是每个编译器的异常处理函数都是相同的,然后存入结构体,将esp的值赋给fs:[0],再就是提升堆栈的操作 每个使用 _try _except的函数,不管其内部嵌套或反复使用多少_try _ex…

清雪除冰,扫出“平安路” 开封市鼓楼区民政局社工组织开展除雪破冰志愿行动

近日,我市迎来大范围降雪天气,积雪融化、道路结冰、湿滑难行,造成居民群众出行不便和较大的交通安全隐患。为迅速清除积雪和道路结冰积水,保障辖区居民尤其是困境群体的出行安全,2023年12月11日下午,鼓楼区…

品牌线下店铺的查价方式

不同于电商平台,线下店铺会更传统,产品定价除了受品牌规则的约束,同样也与门店实际销量和促销有关,当遇到地方活动,促销力度大了,价格难免会与品牌要求相差异,但是管控渠道,包含线上…

【产品经理】产品专业化提升路径

产品专业化就是上山寻路,梳理一套作为产品经理的工作方法。本文作者从设计方法、三基座、专业强化、优秀产品拆解、零代码这五个方面,对产品经理的产品专业化进行了总结归纳,一起来看一下吧。 产品专业化就是上山寻路,梳理一套作为…

约数性质以及辗转相除法

文章目录 AcWing 869. 试除法求约数题目链接思路CODE AcWing 870. 约数个数题目链接思路CODE AcWing 871. 约数之和题目链接思路CODE AcWing 872. 最大公约数题目链接思路CODE AcWing 869. 试除法求约数 题目链接 https://www.acwing.com/activity/content/problem/content/9…

用 CSS 写一个渐变色边框的输入框

Using_CSS_gradients MDN 多渐变色输入框&#xff0c;群友问了下&#xff0c;就试着写了下&#xff0c;看了看 css 渐变色 MDN 文档&#xff0c;其实很简单&#xff0c;代码记录下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta ch…

ReactJS和VueJS的简介以及它们之间的区别

本文主要介绍ReactJS和VueJS的简介以及它们之间的区别。 目录 ReactJS简介ReactJS的优缺点ReactJS的应用场景VueJS简介VueJS的优缺点VueJS的应用场景ReactJS和VueJS的区别 ReactJS简介 ReactJS是一个由Facebook开发的基于JavaScript的前端框架。它是一个用于构建用户界面的库&…

C++ //例3.14 找出100~200间的全部素数。

C程序设计 &#xff08;第三版&#xff09; 谭浩强 例3.14 例3.14 找出100~200间的全部素数。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法&#xff1a;使用函数的模块化设计 #include <iostream> #include <iomanip> #i…

2024年甘肃省职业院校技能大赛信息安全管理与评估赛项一阶段样题一

2024年甘肃省职业院校技能大赛高职学生组电子与信息大类信息安全管理与评估赛项样题一 竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 1.第一阶段&#xff1a;模块一 网络平台搭建与设备安全防…

0012Java安卓程序设计-ssm记账app

文章目录 **摘要**目 录系统设计5.1 APP端&#xff08;用户功能&#xff09;5.2后端管理员功能模块开发环境 编程技术交流、源码分享、模板分享、网课分享 企鹅&#x1f427;裙&#xff1a;776871563 摘要 网络的广泛应用给生活带来了十分的便利。所以把记账管理与现在网络相…

杰发科技AC7840——CAN通信简介(1)

简介 7840支持4路CAN-FD Demo调试 官网下载demo&#xff0c;烧录&#xff0c;打开串口发现打印如下。原因是没有连接CAN盒子&#xff0c;总线错误。 CAN收发器端波形 CAN_L有信号&#xff0c;CAN_H没有 波形放大 GPIO端波形 有持续波形输出 波形放大查看&#xff0c;有50U…

Python数据科学视频讲解:Python注释

2.3 Python注释 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.3节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学应用的全流程&#xff0c;包括数据科学应用和…

Java学习总结

1. Java集合体系框架 java.util中包含 Java 最常用的the collections framework。 Java集合类主要由两个根接口Collection和Map派生出来的。 Collection 接口派生出了三个子接口List、Set、Queue。Map 接口 因此Java集合大致也可分成List、Set、Queue、Map四种接口体系。 …

推荐算法:HNSW【推荐出与用户搜索的类似的/用户感兴趣的商品】

HNSW算法概述 HNSW&#xff08;Hierarchical Navigable Small Word&#xff09;算法算是目前推荐领域里面常用的ANN&#xff08;Approximate Nearest Neighbor&#xff09;算法了。其目的就是在极大量的候选集当中如何快速地找到一个query最近邻的k个元素。 要找到一个query的…

【ChatGLM3】第三代大语言模型多GPU部署指南

关于ChatGLM3 ChatGLM3是智谱AI与清华大学KEG实验室联合发布的新一代对话预训练模型。在第二代ChatGLM的基础之上&#xff0c; 更强大的基础模型&#xff1a; ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、…