物联网实战项目 免费领取!手把手教你如何从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

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

解决idea启动项目报错java: OutOfMemoryError: insufficient memory

《解决idea启动项目报错java:OutOfMemoryError:insufficientmemory》:本文主要介绍解决idea启动项目报错java:OutOfMemoryError... 目录原因:解决:总结 原因:在Java中遇到OutOfMemoryError: insufficient me

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

python项目打包成docker容器镜像的两种方法实现

《python项目打包成docker容器镜像的两种方法实现》本文介绍两种将Python项目打包为Docker镜像的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录简单版:(一次成功,后续下载对应的软件依赖)第一步:肯定是构建dockerfile,如下:第二步

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

Java 队列Queue从原理到实战指南

《Java队列Queue从原理到实战指南》本文介绍了Java中队列(Queue)的底层实现、常见方法及其区别,通过LinkedList和ArrayDeque的实现,以及循环队列的概念,展示了如何高效... 目录一、队列的认识队列的底层与集合框架常见的队列方法插入元素方法对比(add和offer)移除元素方法

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什