物联网实战项目 免费领取!手把手教你如何从0搭建智慧家居中的视频监控系统

本文主要是介绍物联网实战项目 免费领取!手把手教你如何从0搭建智慧家居中的视频监控系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
(文末添加老师微信免费领取全套课件资料和视频教程)

一、 视频监控的作用

在这里插入图片描述

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

在这里插入图片描述
作为程序员,我们需要写2个程序:

  • 在连接摄像头的ARM板子上,实现一个服务器程序:它一边读取摄像头数据,一边等待客户端连接并发送数据
  • 在手机或电脑上,编写客户端程序,它会从ARM板上获得数据并显示出来
  • 这2个程序之间,并不需要实现复杂的协议
    • 约定数据格式
    • 传输一帧帧的数据

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

  • mjpg-streamer,它运行在ARM板上
  • 在手机上使用浏览器直接观看视频

优点:

  • 程序简单,所有源码一目了然,便于学习
  • 对ARM板的性能要求不高,主频200MHz的ARM芯片也能实现

缺点:

  • 只能实现局域网内的视频监控
  • 要实现互联网视频监控,需要另外实现内网穿透
  • mjpg-streamer没有实现声音传输
  • mjpg-streamer项目已经不再维护,仅仅建议用于学习

三、 使用流媒体

在这里插入图片描述
作为程序员,我们需要写3个程序:

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

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

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

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

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

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

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

  • 推送程序:ffmpeg

  • 流媒体服务器程序:Nginx

  • 客户端程序:VLC浏览器

我们需要了解一些协议:

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

  • 有很多流媒体协议

  • STMP、HTTP-FLV、HLS

四、 几种流媒体协议

参考资料:

HTTP-FLV直播初探

https://www.cnblogs.com/saysmy/p/7851911.html

理解RTMP、HttpFlv和HLS的正确姿势

https://www.jianshu.com/p/32417d8ee5b6
在这里插入图片描述
RTMP:

  • Real Time Messaging Protocol

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

  • 延时小,适合直播

HttpFlv:

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

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

  • 延时小,适合直播

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

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

HLS:

  • HTTP Live Streaming

  • Apple出品

  • 延时大,适合看视频,不适合直播
    在这里插入图片描述

五、 流媒体服务:两端加一服

在这里插入图片描述
注意:

  • RTMP可以用在双端

  • HTTPFLV 、HLS 只能用在拉流端

免费领取课件视频教程

在这里插入图片描述
在这里插入图片描述
视频教程目录

第一章_视频监控方案介绍
第二章_MJPG-streamer方案的实现
第三章_流媒体方案的实现之ffmpeg
第四章_流媒体方案的实现之Nginx
第五章_摄像头和声卡接口
第六章_内网穿透

领取方式

(添加老师微信免费领取哟)

微信号:baiwenwang02

技术交流群(鸿蒙开发/Linux/嵌入式/驱动/资料下载)

QQ群:869222007

单片机-嵌入式Linux交流群

QQ群:536785813

这篇关于物联网实战项目 免费领取!手把手教你如何从0搭建智慧家居中的视频监控系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/865665

相关文章

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1