本文章将教你做一个用嵌入式linux开发板和Qt来实现的视频监控系统。

知识点:嵌入式 Linux V4L2 socket QT

本项目是博主大学时的毕业设计题目,现分享给大家,需要其他题目可点如下链接。

毕业设计:电子信息/计算机专业毕业设计选题参考(嵌入式linux/单片机STM32/web/网络/图像)https://blog.csdn.net/qq_30155503/article/details/120339296https://blog.csdn.net/qq_30155503/article/details/120339296

获取资料及联系博主,请点如下链接:

stm32.txt · zengzr/share_contact - Gitee.com

监控管理平台效果图:

系统架构框图:

硬件:

开发板:ARM开发板、树莓派、jetson nano...等跑linux系统的开发板,连接一个摄像头;

电脑:Qt端,可查看监控画面;

功能介绍:

开发板与电脑通过网络socket通信(网线、wifi均可),开发板获取摄像头的画面,将通过网络socket上传到web端,在web端可实时观看摄像头画面。

嵌入式linux功能设计(摄像头端):

采用Linux内核的V4L2视频驱动架构来驱动摄像头获取图像数据,支持MJPEG、JPEG、YUV等格式图像,采用socket与web端通信,将一帧帧的图像发送给Web端,这就实现了捕获摄像头图像的功能。若开发板是带LCD屏的还可添加相应的画面实时显示、一些功能按钮或标签信息等,可用QT来实现。

摄像头端包括以下模块:

QT界面:显示各个QT控件、图像、文字信息等;

USB摄像头图像采集模块:利用V4L2驱动摄像头,获取图像用于显示;

socket通信:与服务器建立TCP连接,相互发送协议数据来通信。

图3.1 客户端功能模块框图

PC端功能设计(管理平台端):

管理平台框架示意图

管理平台主要利用QT库实现UI界面的显示,目前在界面上创建了4个图像区域,每个区域相互独立,单独显示各自连接的摄像头的图像画面,支持连接多个摄像头服务器,每连接一个摄像头均会在对应区域将该摄像头的图像画面显示出来,每个连接都会打开一个socket套接字进行连接,保持一条TCP通信链接进行数据收发。管理平台在TCP连接中作为客户端,主动去连接服务器(摄像头端)。

用作管理平台,采用QT等语言来实现,在网页上实时显示监控画面,还有一些功能按钮如播放、暂停、切换、查看历史等。

V4L2视频驱动

应用程序通过V4L2进行视频采集的原理

V4L2支持内存映射方式(mmap)和直接读取方式(read)来采集数据,前者一般用于连续视频数据的采集,后者常用于静态图片数据的采集,本文重点讨论内存映射方式的视频采集。

应用程序通过V4L2接口采集视频数据分为五个步骤:

首先,打开视频设备文件,进行视频采集的参数初始化,通过V4L2接口设置视频图像的采集窗口、采集的点阵大小和格式;

其次,申请若干视频采集的帧缓冲区,并将这些帧缓冲区从内核空间映射到用户空间,便于应用程序读取/处理视频数据;

第三,将申请到的帧缓冲区在视频采集输入队列排队,并启动视频采集;

第四,驱动开始视频数据的采集,应用程序从视频采集输出队列取出帧缓冲区,处理完后,将帧缓冲区重新放入视频采集输入队列,循环往复采集连续的视频数据;

第五,停止视频采集。

图像流程

获取资料及联系博主,请点如下链接:

stm32.txt · zengzr/share_contact - Gitee.com

未完等续。。。

毕设教程:基于嵌入式Linux和Qt实现的视频监控系统(Arm/树莓派/jetson)相关推荐

  1. android 远程视频监控程序源码,详解基于Android已开放源代码的远程视频监控系统教程...

    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.Socket的英文原义是"孔"或"插座".通常也称作"套接字 ...

  2. 基于EasyDarwin流媒体云平台的智能视频监控系统框架

    基于EasyDarwin流媒体云平台的智能视频监控系统框架 EasyDarwin云平台作为国内较有影响力的开源流媒体平台,集流媒体分发,录像,信令交互为一体,目前已经被广泛应用到监控互联网各个领域:从 ...

  3. 基于嵌入式linux和s32410平台的视频采集

    随着多媒体技术.网络技术的迅猛发展和后PC机时代的到来,利用嵌入式系统实现远程视频监控.可视电话和视频会议等应用已成为可能.为了实现这些应用,实时获得视频数据是一个重要环节.针对这一点,本文在基于嵌入 ...

  4. linux搭建天地伟业easy7,easy7视频监控系统客户端|天地伟业easy7监控客户端简洁版(Easy7 Smart Client Express)下载 V7.12 官方版 - 比克尔下载...

    Easy7 Smart Client Express就是天地伟业简洁版的easy7视频监控系统客户端,支持天地伟业的DVR.NVR.网络视频编码器.网络摄像机.高清编码器等设备,该软件属于单机版软件, ...

  5. Linux下基于qt的视频监控系统

    目录 一.原始需求 二.环境安装 2.1 qt安装 2.2 opencv安装 三.系统设计 3.1. 整体流程设计 3.2 .数据传输交互流程 3.3 .数据库设计 四.关键代码 4.1.如何实现通信 ...

  6. linux系统下Qt应用程序重启,嵌入式Linux重启QT应用程序的简单办法(基于QT4.8 qws)...

    嵌入式Linux重启QT应用程序的简单办法(基于QT4.8 qws) 应用软件一般都有这样的业务需求: 当有新版本的APP,则程序就需要执行更新,更新完毕后(所谓的更新大多就是以覆盖的方式),不需要关 ...

  7. Linux 手势识别,基于嵌入式Linux的手势识别技术研究

    摘要: 随着科学技术的发展,手势识别技术也得到了很大的提升,基于视觉的手势识别逐渐成为人机交互技术中的研究热点.它应用于各种控制领域,如智能控制,机械手以及手语识别等.目前,嵌入式技术和相关产品也早已 ...

  8. 基于嵌入式Linux的MP3播放器的设计与实现

    摘要:本文详细介绍了嵌入式系统的特点以及嵌入式系统开发的流程,分析基于嵌入式Linux的MP3播放器的关键技术,设计和实现了一种基于嵌入式系统的 MP3 播放器.该播放器利用 QT 技术和开源的音频解 ...

  9. 嵌入式linux界面开发,基于嵌入式Linux平台实现GUI系统的设计方案

    描述 嵌入式图形用户界面( GUI, Graphic UserInterface)系统作为嵌入式系统中的一大关键技术,为用户提供设备的控制接口,其性能的好坏,界面的美观程度,影响着用户对产品的购买意愿 ...

最新文章

  1. 语言中什么时候加大括号_日本留学语言学校申请季你知道是几月吗?从什么时候开始准备...
  2. XML PUBLISHER输出excel禁止自动将数字格式化处理
  3. MFC类结构-1、CObject类
  4. i350t4和v2区别_I350T4V2 英特尔原装I350网卡 全新千兆电口网卡
  5. this的用法添加样式给tr或者div
  6. Cisco 3560 Qos限速配置
  7. 拉普拉斯算子属于卷积方法吗_三代图卷积网络理论
  8. Vnc-server——linux远程桌面配置
  9. PHP GD压缩图片
  10. 深度学习之语义分割(SegNet)
  11. IDEA 中 Lombok 编译报错 Java 找不到符号问题
  12. 记关于DNS协议的一次学习(递归查询与迭代查询)
  13. 奥比3d 摄像头 android,Android系统下如何允许奥比中光3D传感摄像头USB设备访问
  14. 虚拟机 Linux root登录
  15. 软件测试需要学什么课程?好学吗?
  16. 如何在vmlogin中设置易路代理yiluproxy?
  17. jquery中ajax中的参数,jquery中的ajax参数
  18. 深入浅出MySQL-学习笔记by CZF
  19. linux创建蓝光映像光盘,11.13 mkisofs指令:创建光盘映像文件
  20. 中科院计算机和理论物理双硕士白,[中科院物理研究所]2005年硕士招生专业及研究方向_跨考网...

热门文章

  1. 聊聊解决方案架构师的那些事儿 | 文末有赠书
  2. H5页面设置背景图,微信可浏览背景图
  3. ubuntu 安装kali_如何在Linux,Windows,Kali,Ubuntu,Mint和示例中安装和使用exiftool
  4. java 补齐字符串_使用String.format()格式化字符串,java自动补全自增长字符串
  5. Python excel转成html页面 excel 在线预览
  6. 王译潇20162314 实验报告四
  7. Arduino基础项目十四:红外对管模块
  8. springboot界面上传文件和在页面上显示文件
  9. exchange外网访问和证书配置
  10. 苹果电脑计算机无法启动,MacBook Pro 按开机按钮没反应无法开机