当前位置: 首页 > news >正文

RTSP协议在视频监控系统中的典型应用、以及视频监控设备的rtsp地址格式介绍

目录

一、协议概述

1、定义

2、提交者

3、位置

二、主要特点

1、实时性

2、可扩展性

3、控制功能

4、回放支持

5、网络适应性

三、RTSP的工作原理

1、会话准备

2、会话建立

3、媒体流控制

4、会话终止

5、媒体数据传输

四、协议功能

1、双向性

2、带外协议

3、控制多媒体流

五、常用方法

六、应用场景

七、RTSP在视频监控系统场景中的典型应用

1. 实时监控画面的传输和播放

2. 低延迟传输

3. 控制功能丰富

4. 会话管理

5. 安全性

6. 适应复杂网络环境

八、支持RTSP协议的视频监控设备

1. 主流摄像机品牌

(1)海康威视(Hikvision)

(2)大华(Dahua)

(3)宇视(Uniview)

(4)华为(Huawei)

2. 其他设备

九、与RTMP协议的比较

1、RTMP

2、RTSP

九、总结

1、RTSP协议在视频监控系统中的重要性

2、以往rtsp相关文档


一、协议概述

        RTSP(Real Time Streaming Protocol,实时流传输协议)是TCP/IP协议体系中的一个重要应用层协议,是一种用于控制流媒体服务器发送多媒体数据(如音频、视频)的应用层协议。它提供了一套用于建立和控制媒体会话的命令,使得客户端可以请求来自服务器的特定流媒体数据。主要负责在客户端与服务器之间建立连接、控制媒体流传输的状态(如播放、暂停、停止等),以及调整媒体流参数(如带宽、传输速率等)。

1、定义

        RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。也定义了一对多应用程序如何有效地通过IP网络传送多媒体数据,特别适用于音视频数据的实时传输和控制。

2、提交者

        该协议由哥伦比亚大学、网景和RealNetworks公司共同提交给IETF,成为RFC标准(RFC2326)。

3、位置

        在协议体系结构上,RTSP位于RTP(实时传输协议)和RTCP(实时传输控制协议)之上。具体如下图所示:

二、主要特点

1、实时性

        RTSP支持实时传输,能够快速、即时地传输流媒体数据,满足实时监控等需求。

2、可扩展性

        RTSP具有良好的可扩展性,支持多种媒体格式和编码方式,适应不同场景和需求的流媒体传输。

3、控制功能

        RTSP提供了丰富的控制功能,包括播放、暂停、停止、快进、倒退等操作,使得客户端能够精细控制流媒体。

4、回放支持

        支持媒体数据的回放功能,客户端可以请求指定时间点的媒体数据。

5、网络适应性

        RTSP能够在不同网络环境下稳定传输流媒体数据,支持TCP和UDP传输方式,并可根据网络状况动态调整传输参数。

三、RTSP的工作原理

        RTSP协议的工作原理如下图所示:

        可以概括为以下几个步骤:

1、会话准备

  • OPTIONS请求:客户端向服务器发送OPTIONS请求,查询服务器支持的RTSP方法
  • DESCRIBE请求:客户端向服务器发送DESCRIBE请求,获取媒体资源的描述信息,如编码格式、比特率等。

2、会话建立

  • SETUP请求:客户端根据描述信息向服务器发送SETUP请求,建立媒体流传输会话。此时,服务器会分配会话标识(Session ID)并返回给客户端。
  • RTSP协议通常与RTP(Real-time Transport Protocol,实时传输协议)和RTCP(Real-time Transport Control Protocol,实时传输控制协议)一起使用。RTP负责传输媒体数据,而RTCP负责传输控制信息,如同步、丢包统计等。

3、媒体流控制

  • 客户端使用分配的会话标识发送PLAY、PAUSE等请求,控制媒体流的播放状态。
  • 在媒体流传输过程中,客户端和服务器通过RTCP协议交换控制信息,以实现实时同步、传输质量监控和网络适应等功能。

4、会话终止

  • 客户端向服务器发送TEARDOWN请求,终止媒体流传输会话。

5、媒体数据传输

  • 在会话建立后,服务器使用RTP协议将音视频数据分包发送给客户端。
  • 客户端收到RTP包后进行解码和播放,实现实时监控画面的展示。

四、协议功能

1、双向性

        与HTTP不同,RTSP允许客户端和服务器都可以发出请求,即RTSP可以是双向的。

2、带外协议

        RTSP仅仅是使媒体播放器能够控制媒体流的传送,而多媒体流本身是使用RTP在带内传送的。

3、控制多媒体流

        RTSP主要用于控制多媒体服务器发送媒体数据,包括播放、暂停、停止等操作。

五、常用方法

RTSP协议定义了一系列方法以实现对流媒体的控制和传输,常用的方法包括:

  1. DESCRIBE:用于获取会话描述信息,包括媒体流的格式、编码方式等。
  2. SETUP:用于建立媒体流的传输通道,告知服务器要传输的媒体流信息,并创建相应的传输通道。
  3. PLAY:用于开始播放媒体流,启动媒体的实时传输和播放。
  4. PAUSE:用于暂停当前正在播放的媒体流。
  5. TEARDOWN:用于结束媒体流的传输并释放相关资源。
  6. GET_PARAMETER:用于向流媒体服务器查询当前的参数信息。

六、应用场景

        RTSP协议广泛应用于实时流媒体传输场景,如视频监控、在线直播等。在安防监控摄像头行业中,RTSP协议因其实时性、可扩展性和控制功能而得到广泛应用。同时,RTSP协议也可以与其他协议(如RTP、RTCP)结合使用,以实现更丰富的功能,如音频、视频的回放、录制等。

七、RTSP在视频监控系统场景中的典型应用

1. 实时监控画面的传输和播放

        RTSP协议能够实现实时监控画面的高效传输,满足远程查看和监控的需求。客户端(如监控中心、移动设备等)通过发送RTSP请求给服务器,服务器则根据请求将实时视频流传输给客户端进行播放。

        直播和录像: 通过RTSP,视频监控系统可以实现实时直播和历史录像的播放。用户可以请求实时视频流,或者回放存储在硬盘录像机(DVR)或其他存储设备中的录像。

        多播和转播: 当需要向多个用户同时传送相同的视频流时,RTSP可以实现多播或转播。它能够有效地管理带宽,减少网络拥堵,并提高视频流传输的效率。

2. 低延迟传输

        与其他流媒体协议相比,RTSP与RTP(Realtime Transport Protocol,实时传输协议)和RTCP(Real-time Transport Control Protocol,实时传输控制协议)结合使用,能够提供低延迟的音视频传输。这对于需要即时响应的监控场景至关重要。

3. 控制功能丰富

        RTSP协议支持丰富的控制功能,如播放、暂停、停止、快进、快退等。这使得用户可以根据需要随时调整监控画面的播放状态,提高监控的灵活性和效率。

        远程访问和控制: RTSP允许远程用户通过网络访问监控系统中的摄像头,并控制其操作,如调整镜头、更改焦距、启动或停止录像等。用户可以通过RTSP命令来请求特定的媒体流,并管理这些流的播放、暂停、快进和快退等。

        录制控制: RTSP还支持录制控制功能,用户可以安排或启动实时及定时录制任务,保存在本地或远程服务器上。这对于需要证据存档的监控应用尤为重要。

4. 会话管理

        RTSP使用会话标识(Session ID)来标识特定的媒体流传输会话。会话标识在SETUP请求后由服务器分配,并在后续的请求和响应消息中使用。这种机制有助于管理多个并发会话,确保监控系统的稳定运行。

5. 安全性

        RTSP协议支持多种认证方式,如基本认证、摘要认证、OAuth认证和TLS/SSL认证等,以保护流媒体服务器资源的安全。这些认证方式可以有效防止未授权访问和数据泄露等安全问题。

6. 适应复杂网络环境

        RTSP协议可以灵活地选择传输层协议(TCP或UDP),以适应不同的网络环境。同时,RTCP协议提供同步、丢包统计等控制信息,有助于在网络拥塞或丢包等异常情况下进行反馈和调整,保证媒体流的稳定传输。

八、支持RTSP协议的视频监控设备

1. 主流摄像机品牌

(1)海康威视(Hikvision)

  • 支持情况:海康威视的摄像机广泛支持RTSP协议。
  • RTSP URL格式示例:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream,如rtsp://admin:admin123@192.168.1.104:554/h264/ch1/main/av_stream。
  • 特点:支持多种编码格式(如H.264),可配置主码流和辅码流。

(2)大华(Dahua)

  • 支持情况:大华摄像机广泛支持RTSP协议。
  • RTSP URL格式示例:rtsp://[username]:[password]@[ip]:[port]/cam/realmonitor?channel=[channel]&subtype=[subtype],如rtsp://admin:admin123@192.168.1.101/cam/realmonitor?channel=1&subtype=1。
  • 特点:通过URL中的channel和subtype参数指定通道号和码流类型(主码流为0,辅码流为1)。

(3)宇视(Uniview)

  • 支持情况:宇视摄像机广泛支持RTSP协议。
  • RTSP URL格式示例:rtsp://[username]:[password]@[ip]:[port]/media/video[stream_id],如rtsp://admin:admin123@192.168.1.107/media/video2(表示辅码流)。
  • 特点:通过video后的数字指定码流(1为主码流,2为辅码流等)。

(4)华为(Huawei)

  • 支持情况:华为的部分摄像机支持RTSP协议。
  • RTSP URL格式示例:rtsp://[username]:[password]@[ip]:[port]/LiveMedia/[channel]/Media[stream_id],如rtsp://admin:admin123@192.168.1.110/LiveMedia/ch1/Media2。
  • 特点:支持多通道和多码流配置。

2. 其他设备

        除了上述主流摄像机品牌外,还有许多其他品牌的视频设备(如录像机、NVR等)也支持RTSP协议。这些设备的RTSP URL格式可能略有不同,但基本原理相似,都是通过URL中的参数来指定设备地址、认证信息、通道号和码流类型等。

九、与RTMP协议的比较

       Rtsp和rtmp都广泛应用在流媒体领域,这里简单做个比较:

1、RTMP

一种用于音视频流传输的协议,支持实时音视频的传输,并实现高质量的音视频播放和互动。RTMP更适用于实时音视频传输和互动场景,但受限于Flash的发展,其广泛应用正在逐渐减少。

2、RTSP

与RTMP不同,RTSP更注重控制和信令传输,支持多种传输协议和编解码器,适用于更多的场景。在安防监控摄像头行业中,RTSP因其独特优势而得到广泛应用。

九、总结

1、RTSP协议在视频监控系统中的重要性

        RTSP协议在视频监控系统中发挥着重要作用,它提供了低延迟、高效、灵活的音视频传输和控制功能。通过RTSP协议,用户可以方便地实现实时监控画面的远程查看和控制,提高监控系统的效率和安全性。同时,RTSP协议还具有良好的可扩展性和兼容性,能够满足不同规模和需求的视频监控系统。

2、以往rtsp相关文档

        《如何获取摄像机RTSP视频流》

        《AS-V1000视频监控平台输出大容量RTSP视频流的配置》

        《视频监控平台ASV:直接从内网视频监控设备IPC拉取RTSP流进行实时视频播放》


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


相关文章:

RTSP协议在视频监控系统中的典型应用、以及视频监控设备的rtsp地址格式介绍

目录 一、协议概述 1、定义 2、提交者 3、位置 二、主要特点 1、实时性 2、可扩展性 3、控制功能 4、回放支持 5、网络适应性 三、RTSP的工作原理 1、会话准备 2、会话建立 3、媒体流控制 4、会话终止 5、媒体数据传输 四、协议功能 1、双向性 2、带外协议 …...

Kotlin基础——异步和并发

同步和异步 同步指的是一种行为:当执行IO操作的时候,在代码层面上我们需要主动去等待结果,直到结果返回阻塞指的是一种状态:当执行IO操作的时候,线程处于挂起状态,就是该线程没有执行了 故同步不是阻塞&a…...

消防认证-防火卷帘

一、消防认证 消防认证是指消防产品符合国家相关技术要求和标准,且通过了国家认证认可监督管理委员会审批,获得消防认证资质的认证机构颁发的证书,消防产品具有完好的防火功能,是住房和城乡建设领域验收的重要指标。 二、认证依据…...

SpringBoot3.3集成knif4j-swagger文档方式和使用案例

springboot3 集成 knif4j &#xff1a; 访问地址&#xff1a; swagger 接口文档默认地址&#xff1a;http://localhost:8080/swagger-ui.html# Knife4j 接口文档默认地址&#xff1a;http://127.0.0.1:8080/doc.html Maven: <dependency><groupId>com.github.x…...

老年服务与管理实训室:制定教学模式

随着我国人口老龄化程度的加深,如何为老年人提供优质的养老服务成为社会关注的重点。作为培养老年服务人才的重要阵地,老年服务与管理实训室应制定科学合理的教学模式,满足行业发展需求,培养出高素质的老年服务专业人才。本文针对老年服务与管理实训室的教学模式展开探讨,提出相…...

4、DDD、中台和微服务的关系

DDD、中台和微服务的关系 1 DDD和中台的本质 领域驱动设计&#xff08;DDD&#xff09;和中台在企业架构中有着密切的关系。DDD的本质在于通过对业务领域的深入分析和建模&#xff0c;构建高内聚、低耦合的系统。而中台则是对企业核心业务能力的抽象和封装&#xff0c;以实现…...

【ACM出版,马来西亚-吉隆坡举行】第四届互联网技术与教育信息化国际会议 (ITEI 2024)

作为全球科技创新大趋势的引领者&#xff0c;中国不断营造更加开放的科技创新环境&#xff0c;不断提升学术合作的深度和广度&#xff0c;构建惠及各方的创新共同体。这是对全球化的新贡献&#xff0c;是构建人类命运共同体的新贡献。 第四届互联网技术与教育信息化国际学术会议…...

走进IT的世界

引言 随着高考的结束&#xff0c;对于即将踏入IT&#xff08;信息技术&#xff09;领域的新生而言&#xff0c;这个假期不仅是放松身心的时间&#xff0c;更是提前规划、深化专业知识、为大学生活奠定坚实基础的宝贵机会。以下是一份详尽的高考假期预习与规划指南&#xff0c;…...

Linux 时区文件编译器 zic【man 8 zic】

1. NAME&#xff08;名&#xff09; zic - 时区编译器 2. SYNOPSIS&#xff08;概要&#xff09; zic [-v] [-d directory] [-l localtime] [-p posixrules] [-L leapsecondfilename] [-s] [-y command] [filename ...]3. DESCRIPTION&#xff08;函数描述&#xff09; zic…...

Springboot下使用Redis管道(pipeline)进行批量操作

之前有业务场景需要批量插入数据到Redis中&#xff0c;做的过程中也有一些感悟&#xff0c;因此记录下来&#xff0c;以防忘记。下面的内容会涉及到 分别使用for、管道处理批量操作&#xff0c;比较其所花费时间。 分别使用RedisCallback、SessionCallback进行Redis pipeline …...

Vue技巧大揭秘:自定义指令的力量与应用

引言 自定义指令就像是给予开发者的一把魔法钥匙&#xff0c;它能够打开DOM操作的新世界&#xff0c;按我的理解就是把对DOM操作的逻辑进行封装 全局注册与局部注册 全局注册 定义&#xff1a; 全局注册意味着自定义指令在Vue实例创建之前通过Vue.directive()方法注册&…...

HR人才测评,如何考察想象力?

什么是想象力&#xff1f; 想象力是指&#xff0c;人们通过在已有物质的基础上&#xff0c;通过大脑想象、加工、创造出新事物的能力&#xff0c;举一个非常简单的例子&#xff0c;在提到鸟这种生活的时候&#xff0c;大家会联想到各种各样不同鸟的品种。 在企业招聘中常常应…...

Git命令远程分支的合并和本地分支的同步

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

墨烯的C语言技术栈-C语言基础-003

三.数据类型 1.char // 字符数据型 2.short // 短整型 3.int // 整型 4.long // 长整型 5.long long // 更长的整型 6.float // 单精度浮点数 7.double // 双精度浮点数 为什么写代码? 为了解决生活中的问题 购物,点餐,看电影 为什么有这么多类型呢? 因为说的话都是字符型…...

RpcRrovider分发rpc服务(OnMessage和Closure回调)

目录 1.完善rpcprovider.cc的OnConnection 2.完善rpcprovider.cc的OnMessage 3.完整rpcprovider.h 4.完整rpcprovider.cc 这篇文章主要完成&#xff0c;protobuf实现的数据序列化和反序列化。 1.完善rpcprovider.cc的OnConnection rpc的请求是短连接的&#xff0c;请求一次…...

分解+降维+预测!多重创新!直接写核心!EMD-KPCA-Transformer多变量时间序列光伏功率预测

分解降维预测&#xff01;多重创新&#xff01;直接写核心&#xff01;EMD-KPCA-Transformer多变量时间序列光伏功率预测 目录 分解降维预测&#xff01;多重创新&#xff01;直接写核心&#xff01;EMD-KPCA-Transformer多变量时间序列光伏功率预测效果一览基本介绍程序设计参…...

【Python】MacBook M系列芯片Anaconda下载Pytorch,并开发一个简单的数字识别代码(附带踩坑记录)

文章目录 配置镜像源下载Pytorch验证使用Pytorch进行数字识别 配置镜像源 Anaconda下载完毕之后&#xff0c;有两种方式下载pytorch&#xff0c;一种是用页面可视化的方式去下载&#xff0c;另一种方式就是直接用命令行工具去下载。 但是由于默认的Anaconda走的是外网&#x…...

自定义控件动画篇(四)ObjectAnimator的使用

ObjectAnimator 是 Android 属性动画框架中的一个重要组件&#xff0c;它允许你针对特定属性的值进行动画处理。与 ValueAnimator 相比&#xff0c;ObjectAnimator 更专注于 UI 组件&#xff0c;可以直接作用于视图的属性&#xff0c;如位置、尺寸、透明度等&#xff0c;而无需…...

实现List接口的ArrayList和LinkedList

package study;import java.util.*;public class day01_list {public static void main(String[] args) {// <Integer> 这个尖括号表示的是 Java 的泛型&#xff08;Generics&#xff09;// 泛型是 Java 5 引入的一项特性&#xff0c;它允许你在 类、接口和方法 中使用类…...

下拉选择输入框(基于elment-ui)

最近在需求中&#xff0c;需要有一个下拉选择功能&#xff0c;又得可以输入&#xff0c;在 element-ui 官网找了&#xff0c;发现没有适合的&#xff0c;然后在修炼 cv 大法的我&#xff0c;也在网上看了一下&#xff0c;但是也都感觉不合适&#xff0c;所以就自己写了两个&…...

CPP入门:日期类的构建

目录 1.日期类的成员 2.日期类的成员函数 2.1构造和析构函数 2.2检查日期合法 2.3日期的打印 2.4操作符重载 2.4.1小于号 2.4.2等于号 2.4.3小于等于号 2.4.4大于号 2.4.5大于等于号 2.4.6不等号 2.4.7加等的实现 2.4.8加的实现 2.4.9减去一个天数的减等实现 2.4.10…...

springboot学习,如何用redission实现分布式锁

目录 一、springboot框架介绍二、redission是什么三、什么是分布式锁四、如何用redission实现分布式锁 一、springboot框架介绍 Spring Boot是一个开源的Java框架&#xff0c;由Pivotal团队&#xff08;现为VMware的一部分&#xff09;于2013年推出。它旨在简化Spring应用程序…...

【MySQL】如果表被锁可以尝试看一下事务

今天在MySQL中删除表的时候&#xff0c;发现无法删除&#xff0c;一执行drop&#xff0c;navicat就卡死。 通过 SHOW PROCESSLIST显示被锁了 kill掉被锁的进程后依旧被锁 最后发现是由于存在为执行完的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; kill掉这些事务以…...

Datawhale - 角色要素提取竞赛

文章目录 赛题要求一、赛事背景二、赛事任务三、评审规则1.平台说明2.数据说明3.评估指标4.评测及排行 四、作品提交要求五、 运行BaselineStep1&#xff1a;下载相关库Step2&#xff1a;配置导入Step3&#xff1a;模型测试Step4&#xff1a;数据读取Step5&#xff1a;Prompt设…...

【Sql-驯化】sql中对时间的处理方法技巧总结

【Sql-驯化】sql中对时间的处理方法技巧总结 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#xff1a;微信公众…...

TFD那智机器人仿真离线程序文本转换为现场机器人程序

TFD式样那智机器人离线程序通过Process Simulation、DELMIA等仿真软件为载体给机器人出离线&#xff0c;下载下来的文本程序&#xff0c;现场机器人一般是无法导入及识别出来的。那么就需要TFD on Desk TFD控制器来进行转换&#xff0c;才能导入现场机器人读取程序。 导入的文…...

贪心+后缀和,CF 1903C - Theofanis‘ Nightmare

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1903C - Theofanis Nightmare 二、解题报告 1、思路分析 我们任意一种分组其实都是若干个后缀和相加 比如我们分成了三组&#xff0c;第一组的数被加了一次&#xff0c;第二组的数被加了两次&#xff0c;第…...

10分钟完成微信JSAPI支付对接过程-JAVA后端接口

引入架包 <dependency><groupId>com.github.javen205</groupId><artifactId>IJPay-WxPay</artifactId><version>${ijapy.version}</version></dependency>配置类 package com.joolun.web.config;import org.springframework.b…...

如何寻找一个领域的顶级会议,并且判断这个会议的影响力?

如何寻找一个领域的顶级会议&#xff0c;并且判断这个会议的影响力&#xff1f; 会议之眼 快讯 很多同学都在问&#xff1a;学术会议不是期刊&#xff0c;即使被SCI检索&#xff0c;也无法查询影响因子。那么如何知道各个领域的顶级会议&#xff0c;并对各个会议有初步了解呢…...

真的假不了,假的真不了

大家好&#xff0c;我是瑶琴呀&#xff0c;拥有一头黑长直秀发的女程序员。 最近&#xff0c;17岁的中专生姜萍参加阿里巴巴 2024 年的全球数学竞赛&#xff0c;取得了 12 名的好成绩&#xff0c;一时间在网上沸腾不止。 从最开始的“数学天才”&#xff0c;到被质疑&#xff…...

看完这篇文章你就知道什么是未来软件开发的方向了!即生成式AI在软件开发领域的革新=CodeFlying

从最早的UGC&#xff08;用户生成内容&#xff09;到PGC&#xff08;专业生成内容&#xff09;再到AIGC&#xff08;人工智能生成内容&#xff09;体现了web1.0→web2.0→web3.0的发展历程。 毫无疑问UGC已经成为了当前拥有群体数量最大的内容生产方式。 同时随着人工智能技术…...

HTML5五十六个民族网站模板源码

文章目录 1.设计来源高山族1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 中国民族界面演示1.5 关于高山族界面演示1.6 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目录 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.ne…...

Linux_fileio实现copy文件

参考韦东山老师教程&#xff1a;https://www.bilibili.com/video/BV1kk4y117Tu?p12 目录 1. 通过read方式copy文件2. 通过mmap映射方式copy文件 1. 通过read方式copy文件 copy文件代码&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <…...

【JavaEE精炼宝库】多线程进阶(2)synchronized原理、JUC类——深度理解多线程编程

一、synchronized 原理 1.1 基本特点&#xff1a; 结合上面的锁策略&#xff0c;我们就可以总结出&#xff0c;synchronized 具有以下特性(只考虑 JDK 1.8)&#xff1a; 开始时是乐观锁&#xff0c;如果锁冲突频繁&#xff0c;就转换为悲观锁。 开始是轻量级锁实现&#xff…...

【Linux进程通信】使用匿名管道制作一个简单的进程池

进程池是什么呢&#xff1f;我们可以类比内存池的概念来理解进程池。 内存池 内存池是在真正使用内存之前&#xff0c;先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时&#xff0c;就从内存池中分出一部分内存块&#xff0c;若内存块不够再继…...

Django 多对多关系

多对多关系作用 Django 中&#xff0c;多对多关系模型的作用主要是为了表示两个模型之间的多对多关系。具体来说&#xff0c;多对多关系允许一个模型的实例与另一个模型的多个实例相关联&#xff0c;反之亦然。这在很多实际应用场景中非常有用&#xff0c;比如&#xff1a; 博…...

构建 Audio Unit 应用程序

构建 Audio Unit 应用程序 构建 Audio Unit 应用程序从选择设计模式开始I/O Pass ThroughI/O Without a Render Callback FunctionI/O with a Render Callback FunctionOutput-Only with a Render Callback Function其他设计模式 构建应用程序配置 audio session指定 audio uni…...

JavaScript 实用技巧

1. 使用 const 和 let 替代 var 在 ES6 之前&#xff0c;我们通常使用 var 声明变量。但如今&#xff0c;推荐使用 const 和 let&#xff0c;因为它们具有块级作用域&#xff0c;可以避免很多潜在的问题。 const PI 3.14; // 常量&#xff0c;无法重新赋值 let age 25; // …...

Python协作运动机器人刚体力学解耦模型

&#x1f3af;要点 &#x1f3af;腿式或固定式机器人模型 | &#x1f3af;网格、点云和体素网格碰撞检测 | &#x1f3af;正反向运动学和动力学 | &#x1f3af;机器人刚体力学计算 | &#x1f3af;编辑参考系姿势和路径 | &#x1f3af;软件接口实体机器人模拟 | &#x1f3a…...

可重入锁思想,设计MQ迁移方案

如果你的MQ消息要从Kafka切换到RocketMQ且不停机&#xff0c;怎么做&#xff1f;在让这个MQ消息调用第三方发奖接口&#xff0c;但无幂等字段又怎么处理&#xff1f;今天小傅哥就给大家分享一个关于MQ消息在这样的场景中的处理手段。 这是一种比较特例的场景&#xff0c;需要保…...

Redis安装与使用

目录 1、介绍 1、redis的特点: 2、缓存 2、安装Redis 1、安装单机版redis 2、redis-cli命令参数 3、清空数据库的两种方式和作用域&#xff1a; 4、redis的增删查改命令 5、redis的查看所有分类命令 6、redis过期时间与控制键的行为 7、redis的相关工具 1、介绍 r…...

base64字符串空格问题

客户端使用的Content-Type为application/x-www-form-urlencoded时&#xff0c;字符串中出现了空格&#xff0c;base64解码时出错了&#xff0c;因为原来的字符有号&#xff0c; Spring Boot 对于Content-Type为application/x-www-form-urlencoded的HTTP请求&#xff0c;默认情…...

【BES2500x系列 -- RTX5操作系统】深入探索CMSIS-RTOS RTX -- 同步与通信篇 -- 消息队列和邮箱处理 --(四)

&#x1f48c; 所属专栏&#xff1a;【BES2500x系列】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f49…...

电信NR零流量小区处理

【摘要】随着目前网络建设逐步完善&#xff0c;5G用户的不断发展&#xff0c;针对零流量小区的分析及处理存在着必要性&#xff0c;零流量小区的出现既是用户分布及行为的直观体现&#xff0c;也是发展用户的一个指引&#xff0c;同时也能发现设备的一些故障。一个站点的能够带…...

ArcTs布局入门03——层叠布局(Stack)

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧&#xff01; 扫描下面的二维码关注公众号。 1、概述 叠布局&#xff08;StackLayout&#xff09;用于在屏幕上预留一块区域来显示组件中的元素&#xff0c;提供元素可以重叠的布局。层叠布局通过Stack容器组件实…...

C语言之线程的学习

线程属于某一个进程 共同点&#xff1a;都能并发 线程共享变量&#xff0c;进程不共享。 多线程任务中&#xff0c;其中某一个线程调用了exit了&#xff0c;其他线程会跟着一起退出 如果是特定的线程就调用pthread_exit 失败返回的是错误号 下面也是...

HT8691 内置升压模块的D类音频功率放大器芯片IC

一般描述 HT8691是一款内置升压模块的D类音频功率放大器。内置的升压模块可通过外置电阻调节升压值&#xff0c;即使是锂电池供电&#xff0c;在升压至6.5V时&#xff0c;10%THDN,4Ω负载条件下能连续输出5.5W功率;升压至7V,3Ω负载条件下则能连续输出7.0W功率。其支持外部设置…...

和小红书一起参会! 了解大模型与大数据融合的技术趋势

在过去的两年中&#xff0c;“大模型”无疑成为互联网行业的焦点话题&#xff0c;曾经炙手可热的大数据架构似乎淡出公众视野。然而&#xff0c;大数据领域并未停滞不前&#xff0c;反而快速演进&#xff0c;传统依赖众多开源组件的大数据平台正逐步过渡到以融合与简化为核心特…...

【vocabulary in use (elementary)】7 Feeling

happy 高兴 sad 伤心 angry 生气 upset 丧气 cold 冷 hot 热 thirsty 口渴 hungry 饿 well 很好 ill 生病 tired 累了 surprised 惊讶 关于喜欢的表达&#xff1a; like to do 偶尔一次喜欢 like doing 一直喜欢的 outdoor activities 户外运动 be keep on doing 坚持做 be fo…...

Keil5 ST-LINK setting闪退问题解决

1. 官网下载新版驱动文件 MDK uVision crashes when using ST-Link debugger 2. 解压替换 STLinkUSBDriver6.1.2.0Signed 我的库文件目录&#xff1a; D:\Tool\Keil5\ARM\STLink...

基于SpringBoot的校园台球厅人员与设备管理系统

本系统是要设计一个校园台球厅人员与设备管理系统&#xff0c;这个系统能够满足校园台球厅人员与设备的管理及用户的校园台球厅人员与设备管理功能。系统的主要功能包括首页、个人中心、用户管理、会员账号管理、会员充值管理、球桌信息管理、会员预约管理、普通预约管理、留言…...

基于Qt实现的PDF阅读、编辑工具

记录一下实现pdf工具功能 语言&#xff1a;c、qt IDE&#xff1a;vs2017 环境&#xff1a;win10 一、功能演示&#xff1a; 二、功能介绍&#xff1a; 1.基于saribbon主体界面框架&#xff0c;该框架主要是为了实现类似word导航项 2.加载PDF放大缩小以及预览功能 3.pdf页面跳转…...

欧科云链大咖对话:Web3原生创新静默期,科技巨头却在两极化发展

出品&#xff5c;OKG Research 作者&#xff5c;Hedy Bi 上周末&#xff0c;欧科云链研究院接受FT中文的邀请&#xff0c;作为圆桌嘉宾参与了由FT中文网与上海交通大学上海高级金融学院联合主办的金融大师课。在圆桌环节&#xff0c;笔者与各位教授和金融行业科技创新前沿实践…...

三万字带你一遍跑通uer

三万字带你一遍跑通uer 参考文档 今天给大家介绍个非常强大的项目uer&#xff0c;集成了许多可以做自然语言的东西&#xff0c;效果的话也非常好&#xff0c;很适合企业级的应用&#xff01; 1. 先将项目uer从github拉取下来&#xff08;zip或git都ok&#xff09; 2. 用pycha…...

谷粒商城学习-07-虚拟机网络设置

文章目录 一&#xff0c;找到配置文件Vagrantfile二&#xff0c;查询虚拟机网卡地址1&#xff0c;查看虚拟机网络配置2&#xff0c;查看宿主机网络配置 三&#xff0c;修改配置文件下的IP配置四&#xff0c;重新启动虚拟机即可生效五&#xff0c;Vagrantfile 的作用1&#xff0…...

mac 安装homebrew

vim brew_install.sh 输入&#xff1a; #!/bin/bash set -u# First check if the OS is Linux. if [[ "$(uname)" "Linux" ]]; thenHOMEBREW_ON_LINUX1 fi# Check if macOS is ARM if [[ "$(uname)" "Darwin" ]] && [[ &q…...

java面试中高频问题----1

一、乐观锁和悲观锁定义、场景怎么判断用什么&#xff1f; 1.乐观锁&#xff1a; 定义&#xff1a;乐观锁假设大多数情况下&#xff0c;资源不会发生冲突。因此&#xff0c;允许多个线程同时访问资源。 场景&#xff1a;读操作多&#xff0c;写操作少&#xff0c;数据冲突概率…...

赎金信-力扣

这道题想到的解法是使用一个哈希表来存储magazine里每个字符出现的次数&#xff0c;然后遍历ransomNote&#xff0c;出现对应的字母则哈希表中对应的值减一&#xff0c;当查找不到某个字符&#xff0c;或者某个字符的值小于0时&#xff0c;则返回false。代码如下&#xff1a; …...

【SOFARPC框架的设计和实现】笔记记录

感谢刘老师对rpc框架的视频讲解&#xff1a;SOFAChannel#31 RPC框架的设计和实现_哔哩哔哩_bilibili 每个扩展点就是一个接口&#xff0c;可以通过实现接口来时拓展。 以registry举例&#xff0c;可以使用Extensible注解标记接口&#xff0c;然后Extension标记方法的实现。 …...

DNS设置(linux)

1.配置dns需要现在/etc/sysconfig/network-scripts/目录下的ifcfg-ens33(后面数字也可能是其他的)中配置DNS 2.编辑/etc/resolv.conf文件&#xff0c;将上面网卡中加的dns服务器ip添加到此文件 vi /etc/resolv.conf重启网络配置 service network restart常用的dns的ip 国内…...

用Spring Security快速实现 RABC模型案例

RABC模型通常是指“基于角色的访问控制”&#xff08;Role-Based Access Control&#xff0c;RBAC&#xff09;模型。这是一种广泛使用的访问控制机制&#xff0c;用于限制用户或系统对计算机或网络资源的访问。在RBAC模型中&#xff0c;权限与角色相关联&#xff0c;用户通过分…...

gpt-4o继续迭代考场安排程序 一键生成考场清单

接上两篇gpt-4o考场安排-CSDN博客&#xff0c;考场分层次安排&#xff0c;最终exe版-CSDN博客 当然你也可以只看这一篇。 今天又添加了以下功能&#xff0c;程序见后。 1、自动分页&#xff0c;每个考场打印一页 2、添加了打印试场单页眉 3、添加了页脚 第X页&#xff0c;…...