SQL数据库:通过在视频监控平台服务器上直接使用SQL存储过程,在海量记录中查询特定时间段内-某个摄像头的所有视频片段

目录

一、背景

1、存储过程

2、视频监控系统

二、需求和数据表

1、具体要求

2、数据表

3、部分数据

三、实现

1、目标

2、创建存储过程

(1)存储过程代码

(2)创建成功

3、存储过程的解释

4、SQL命令调用方式

5、调用的结果


一、背景

1、存储过程

        SQL 存储过程 是一组预编译的 SQL 语句和控制流语句,它们作为一个单元存储在数据库服务器上,并可以通过一个名称来调用。存储过程可以接受输入参数并返回输出结果。它们通常用于封装复杂的业务逻辑或数据处理任务,从而提高代码的重用性和性能。

2、视频监控系统

        视频监控系统 是一种用于监视和记录视频图像的技术解决方案。它通常由以下几个主要组成部分构成:

        (1)前端设备:如摄像头,负责捕捉视频信号。

        (2)传输介质:用于传输视频信号,可以是同轴电缆、光纤或无线网络。

        (3)处理设备:如数字视频录像机 (DVR) 或网络视频录像机 (NVR),用于录制和处理视频数据。

        (4)显示设备:如监视器或计算机屏幕,用于查看实时视频或回放记录。

        (5)软件平台:用于配置、管理和分析视频数据的软件工具。

        视频监控系统广泛应用于安全监控、交通管理、公共安全等领域。随着技术的进步,现代视频监控系统还可能具备智能分析功能,如人脸识别、行为分析等,以提高监控效率和准确性。视频监控平台作为视频监控系统最主要的部分,是为各种各种视频监控设备提供接入服务的网络产品。通常可以支持多种协议和SDK,集信令网关服务、安全认证、视频接入、视频互联、云台控制、权限管理、日志管理以及管理功能为一体的网关产品。也要能够提供SDK和API接口,可以接入到其他视频监控平台;最好也能支持国标28181协议,能够通过国标28181协议接入到第三方的视频监控平台。            

二、需求和数据表

1、具体要求

        当涉及到视频监控系统时,存储过程可以用来处理与视频数据相关的各种任务,比如可以查询特定时间段内的视频记录、更新视频文件的状态或者统计某个时间段内发生的事件次数等。

        视频系统的视频记录成上百万条,管理员为了轻松地查询特定摄像头的视频记录,便于维护和管理视频监控系统,要想办法实现通过在服务器上直接查询特定时间段内某个摄像头的所有视频片段。

2、数据表

        有一个名为 video_records 的表记录摄像头相关的视频片段,其中包含以下字段:

        - id: 视频记录的唯一标识符。

        - camera_id: 摄像头的唯一标识符。

        - start_time: 视频片段开始的时间戳。

        - end_time: 视频片段结束的时间戳。

        - file_path: 存储视频文件的路径。

        若没有此表,可以使用如下语句创建该表:

CREATE TABLE video_records ( RecordID INT AUTO_INCREMENT PRIMARY KEY, camera_id INT NOT NULL, start_time DATETIME NOT NULL, end_time DATETIME, file_path VARCHAR(255) NOT NULL, FileSize BIGINT, Status TINYINT DEFAULT 1, -- 假设1表示已存储,0表示删除或待处理 INDEX idx_camera_time (camera_id, start_time) 
);

3、部分数据

        预先产生一些临时记录,如下图所示:

三、实现

1、目标

        创建一个存储过程来查询指定摄像头在指定时间段内的所有视频记录。

2、创建存储过程

(1)存储过程代码

DELIMITER $$CREATE PROCEDURE GetCameraVideos(IN start_date TIMESTAMP, IN end_date TIMESTAMP, IN p_camera_id INT)BEGINSELECT RecordID, camera_id, start_time, end_time, file_pathFROM video_recordsWHERE camera_id = p_camera_idAND start_time >= start_dateAND end_time <= end_date;END$$DELIMITER ;

(2)创建成功

        存储过程创建成功,如下图所示:

3、存储过程的解释

        - DELIMITER $$ 和 DELIMITER ;:设置存储过程的结束标记。

        - CREATE PROCEDURE:定义一个新的存储过程。

        - IN start_date TIMESTAMP, IN end_date TIMESTAMP, IN camera_id INT:定义存储过程的输入参数。

        - SELECT 语句:从 video_records 表中选择符合条件的数据。

        - WHERE 子句:过滤出指定摄像头 ID 和时间范围内的记录。

4、SQL命令调用方式

        要调用这个存储过程,可以使用如下 SQL 命令:

        CALL GetCameraVideos('2024-07-26 08:00:00', '2024-07-26 18:00:00', 1);

        这将返回摄像头 ID 为 1 的所有视频记录,这些记录的开始时间不早于 2024 年 7 月 26 日上午 8 点,并且结束时间不晚于同一天下午 6 点。

5、调用的结果

        使用上节的调用命令,返回结果如下图所示:


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


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

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

相关文章

Java----队列(Queue)

目录 1.队列&#xff08;Queue&#xff09; 1.1概念 1.2队列的使用 1.3队列的模拟实现 1.4循环队列 1.4.1循环队列下标偏移 1.4.2如何区分队列是空还是满 1.5双端队列 (Deque) 1.队列&#xff08;Queue&#xff09; 1.1概念 队列&#xff1a;只允许在一端进行插入数据…

训练的韧性:Mojo模型中自定义训练中断与恢复机制的实现

训练的韧性&#xff1a;Mojo模型中自定义训练中断与恢复机制的实现 在机器学习模型的开发过程中&#xff0c;训练过程可能会因为多种原因&#xff08;如硬件故障、电源中断等&#xff09;被迫中断。Mojo模型&#xff0c;作为一个泛指&#xff0c;可以代表任何机器学习或深度学…

Linux Redhat ens33不显示IP问题

优质博文&#xff1a;IT-BLOG-CN 【第一步】&#xff1a;查看系统网卡设备 : ip addr show 【第二步】&#xff1a;修改网卡配置参数 cd /etc/sysconfig/network-scripts/ vi ifcfg-ens33 修改ONBOOT参数为yes 【第三步】&#xff1a;重启网卡&#xff0c;然后ping检测…

奇怪的Excel单元格字体颜色格式

使用VBA代码修改单元格全部字符字体颜色是个很简单的任务&#xff0c;例如设置A1单元格字体颜色为红色。 Range("A1").Font.Color RGB(255, 0, 0)有时需要修改部分字符的颜色&#xff0c;如下图所示&#xff0c;将红色字符字体颜色修改为蓝色。代码将会稍许复杂&am…

MySQL - 优化概述

数据库性能取决于数据库层面的多个因素&#xff0c;例如表、查询和配置设置。这些软件构造会在硬件层面产生 CPU 和 I/O 操作&#xff0c;您必须尽量减少这些操作并使其尽可能高效。在致力于数据库性能优化时&#xff0c;您首先要了解软件方面的高级规则和指南&#xff0c;并使…

自定义Spring Cloud Gateway过滤器工厂:实现PrintAnyGatewayFilterFactory

在Spring Cloud Gateway中&#xff0c;除了可以实现全局过滤器外&#xff0c;还可以通过自定义过滤器工厂来实现更加灵活的过滤器配置。本文将带领大家学习如何自定义一个Spring Cloud Gateway过滤器工厂&#xff0c;并具体实现一个打印请求头信息的过滤器工厂。以下是完整代码…

linux设置~/.vimrc步骤

日常模板&#xff08;够用&#xff09; #开启自动缩进 set ai #tab的宽度为2 set ts2 # tab自动转为空格 set et 扩展 设置文件格式及编码&#xff1a; set fileformatunix " 设置文件格式为Unix风格 set encodingutf-8 " 设置编码为UTF-8 显示行号和列号&#xf…

Java后端开发岗位面试经验总结:技术深度与实践能力的考验

面试经验分享 XXXX科技有限公司 (成都某小公司) 文章目录 面试经验分享XXXX科技有限公司笔试(100,60及格)对List中的数据进行倒序排列() 10缓存中常见的问题,怎么解决 10用户登录模块流程设计,一级登录权限的设计,数据库表结构设计,登录流程,以及权限验证(对权…

“/usr/local/nginx/logs/nginx.pid“ failed (2: No such file or directory)问题

场景&#xff1a;在nginx启动状态下&#xff0c;执行命令 nginx -s stop 和 nginx -s reload都报错&#xff1a; [xxxBMP-TEST-001 sbin]$ nginx -s stop nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory) 报错的意…

Linux:Linux进程控制

目录 1. 进程概念 1.1 并行和并发 2. 进程创建 2.1 fork()函数初识 2.2 写时拷贝 2.3 fork常规用法 2.4 fork调用失败的原因 3. 进程终止 3.1 进程场景 3.2 进程常见退出方法 4. 进程等待 4.1 进程等待必要性 4.2 进程等待的方法 4.2.1 wait方法&#xff1a; 4.…

因子分析vs主成分分析

前两篇文章介绍了因子分析与主成分分析的原理与基本步骤。初次学习时&#xff0c;大家可能感觉这是两个基本相同的方法&#xff0c;但实际上两者间还是有一定差异的。这篇文章就带大家盘点一下两个方法间的异同。 目的 因子分析&#xff1a;旨在识别观测变量背后的潜在因素或结…

2024年起重信号司索工(建筑特殊工种)证模拟考试题库及起重信号司索工(建筑特殊工种)理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年起重信号司索工(建筑特殊工种)证模拟考试题库及起重信号司索工(建筑特殊工种)理论考试试题是由安全生产模拟考试一点通提供&#xff0c;起重信号司索工(建筑特殊工种)证模拟考试题库是根据起重信号司索工(建筑特…

C语言课程回顾:十二、C语言之 位运算

C语言之 位运算 12 位运算12.1 位运算符&#xff23;语言提供了六种位运算符&#xff1a;12.1.1 按位与运算12.1.2 按位或运算12.1.3 按位异或运算12.1.4 求反运算 12.2 位域&#xff08;位段&#xff09;12.3 位运算的实际应用12.4位运算注意事项1 二进制和位2 位运算符3常见位…

2.9.GoogLeNet

GoogLeNet ​ 主要解决了什么样大小的卷积核是最合适的&#xff1a;有时使用不同大小的卷积核组合是有利的 1.Inception块 ​ Inception块由四条并行路径组成。 前三条路径使用窗口大小为11、33和55的卷积层&#xff0c;从不同空间大小中提取信息。 ​ 中间的两条路径在输入…

谷粒商城实战-58-商品服务-API-三级分类-删除-批量删除小结

文章目录 一&#xff0c;增加一个批量删除的按钮并绑定事件二&#xff0c;全栈工程师三&#xff0c;逆向工程在全栈开发中的应用提升效率的方式&#xff1a;使用案例&#xff1a; 这一节的主要内容是开发批量删除分类的功能。 一&#xff0c;增加一个批量删除的按钮并绑定事件 …

zh echarts样式

记录一下&#xff1a; 一个图的配置 在echarts官网demo界面 option {title: {text: },legend: {data: [xxx前, xxx后]},radar: {// shape: circle,name: {// 雷达图各类别名称文本颜色textStyle: {color: #000,fontSize: 16}},indicator: [{ name: 完整性, max: 1 },{ name:…

【无标题】shell脚本的基本命令+编写shell脚本

shell脚本 一.shell基础 1.shell概念 2.shell脚本 3.shell脚本编写注意事项 二.编写shell脚本 1.编写一个helloworld脚本&#xff0c;运行脚本 [rootshell ~]# vim helloworld.sh #!/bin/bash //声明 echo "hello world!" ls -lh /etc/ 运行脚本(四种方式)&…

图像处理 -- Sensor与ISP驱动之像素时钟获取的方法

像素时钟获取方法 像素时钟&#xff08;Pixel Clock&#xff0c;也称为 PCLK&#xff09;是摄像头 sensor 和 ISP 协调工作时的关键参数之一&#xff0c;决定了每个像素的传输速率。获取或计算像素时钟可以通过以下几种方法&#xff1a; 1. 数据手册 (Datasheet) 大多数摄像…

C语言字符函数与字符串函数超详解

文章目录 前言1. 字符分类函数2. 字符转换函数3. strlen3. 1 strlen 的使用3. 2 strlen 的模拟实现 4. strcpy4. 1 strcpy 的使用4. 2 strcpy 的模拟实现 5. strcat5. 1 strcat 的使用5. 2 strcat 的模拟实现 6. strcmp6. 1 strcmp 的使用6. 2 strcmp 的模拟实现 7. strncpy 函…

VI/VIM编辑器及三种模式

目录 1. 三种模式 2. 使用 VIM 3. i/ a/ o 进入输入模式 VI/VIM是 visual interface 的缩写是 Linux 中最经典的文本编辑器&#xff1b; VIM是 VI 的增强版本&#xff0c;兼容 VI 的所有指令&#xff0c;不仅能够编辑文本&#xff0c;还具有 shell 程序编辑的功能&#xff…