一文详解GB28181、RTSP、RTMP

news2024/11/18 15:50:43

GB28181

GB28181 即 GB/T28181—2016《公共安全视频监控联网系统信息传输、交换、控制技术要求》。它是公安部提出的公共安全行业标准,在视频监控领域具有重要地位。

  1. 主要目的和应用场景
    • 目的:解决不同厂家的视频监控设备执行各自标准,导致无法互通、无法统一管理的问题,实现视频监控系统的互联互通和统一管理。
    • 应用场景:广泛应用于城市安防监控网络建设、跨区域的大规模视频监控系统整合等,尤其在公安、交通等行业的视频监控平台建设中发挥着关键作用。例如,一个城市的公安监控系统可以通过 GB28181 标准将不同区域、不同厂家的监控设备连接起来,实现统一的监控和管理。
  2. 技术架构和通信方式
    • 技术架构:联网系统在进行视音频传输及控制时应建立两个传输通道,即会话通道和媒体流通道。
      • 会话通道:用于在设备之间建立会话并传输系统控制命令,如设备注册、心跳保活、信息查询、报警事件通知等。
      • 媒体流通道:用于传输视音频数据,经过压缩编码的视音频流采用流媒体协议 RTP/RTCP 传输。
    • 通信方式:信令层面使用的是 SIP(会话初始协议),在 SIP 协议的基础之上做了些私有化处理。SIP 是一个用于创建、修改和终止多媒体会话的协议,它可以实现设备的注册、呼叫建立、会话管理等功能。
  3. 功能特点
    • 设备注册:设备进入联网系统时需向 SIP 服务器进行注册登记,注册信息包括设备的国标 ID、域国标 ID、IP 地址、端口号等,以便系统对设备进行识别和管理。
    • 设备信息获取:可以获取设备的相关信息,如设备类型、设备型号、设备状态等,还能够拉取与设备关联的摄像头信息,对于像 NVR 设备这种可能连接多个摄像头的情况,可方便地获取其下属摄像头的信息。
    • 实时视音频传输:支持实时拉取设备当前的视频数据,以便用户实时查看监控画面。
    • 设备控制:可向设备发送控制信息,例如对球机进行云台控制,实现摄像头的转动、变焦等操作。
    • 历史视音频查询与回放:能够查询设备的历史视频记录,包括查看哪些时间段有视频、文件大小等信息,并可以拉取指定时间段的视频进行回放和下载。
  4. 优势和不足
    • 优势
      • 协议统一:为视频监控系统的互联提供了统一的标准和规范,方便不同平台、不同厂家的设备之间进行通信和数据交换。
      • 可扩展性强:支持多级平台的级联,可以构建复杂的视频监控网络架构,满足大规模监控系统的需求。
      • 支持外网访问:在一定程度上可以实现视频流出外网,方便用户远程访问和查看监控视频。
    • 不足
      • 标准不够完善:国标相对简陋,只定义了一些基本的通信字段,对于很多异常通信情况没有进行详细的处理规定,导致在平台对接过程中可能会出现一些问题。
      • 消息推送较慢:在一些情况下,消息的推送和响应速度可能较慢,影响用户的使用体验。
  5. 开发模块

大牛直播SDK推出的Android平台GB28181接入SDK(SmartGBD),可实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181—2016服务,可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等场景,可能是业内为数不多功能齐全性能优异的商业级水准GB28181接入SDK。

Android终端除支持常规的音视频数据接入外,还可以支持移动设备位置(MobilePosition)订阅和通知、图像抓拍、语音广播和语音对讲、历史视音频下载和回放,支持对接数据类型如下:

  1. 编码前数据(目前支持的有YV12/NV21/NV12/I420/RGB24/RGBA32/RGB565等数据类型),其中,Android平台前后摄像头数据,或者屏幕数据,或者Unity拿到的数据,均属编码前数据;
  2. 编码后数据(如无人机等264/HEVC数据,或者本地解析的MP4音视频数据);
  3. 拉取RTSP或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。

功能支持:

  •  [视频格式]H.264/H.265(Android H.265硬编码);
  •  [音频格式]G.711 A律、AAC;
  •  [音量调节]Android平台采集端支持实时音量调节;
  •  [H.264硬编码]支持H.264特定机型硬编码;
  •  [H.265硬编码]支持H.265特定机型硬编码;
  •  [软硬编码参数配置]支持gop间隔、帧率、bit-rate设置;
  •  [软编码参数配置]支持软编码profile、软编码速度、可变码率设置;
  •  支持横屏、竖屏推流;
  •  Android平台支持后台service推送屏幕(推送屏幕需要5.0+版本);
  • 支持纯视频、音视频PS打包传输;
  • 支持RTP OVER UDP和RTP OVER TCP被动模式(TCP媒体流传输客户端);
  • 支持信令通道网络传输协议TCP/UDP设置;
  • 支持注册、注销,支持注册刷新及注册有效期设置;
  • 支持设备目录查询应答;
  • 支持心跳机制,支持心跳间隔、心跳检测次数设置;
  • 支持移动设备位置(MobilePosition)订阅和通知;
  •  适用国家标准:GB/T 28181—2016;
  • 支持语音广播;
  • 支持语音对讲;
  • 支持图像抓拍;
  • 支持历史视音频文件检索;
  • 支持历史视音频文件下载;
  • 支持历史视音频文件回放;
  • 支持云台控制和预置位查询;
  •  [实时水印]支持动态文字水印、png水印;
  •  [镜像]Android平台支持前置摄像头实时镜像功能;
  •  [实时静音]支持实时静音/取消静音;
  •  [实时快照]支持实时快照;
  •  [降噪]支持环境音、手机干扰等引起的噪音降噪处理、自动增益、VAD检测;
  •  [外部编码前视频数据对接]支持YUV数据对接;
  •  [外部编码前音频数据对接]支持PCM对接;
  •  [外部编码后视频数据对接]支持外部H.264数据对接;
  •  [外部编码后音频数据对接]外部AAC数据对接;
  •  [扩展录像功能]支持和录像SDK组合使用,录像相关功能。

RTSP

RTSP(Real Time Streaming Protocol),即实时流传输协议,是一种用于控制流媒体服务器和客户端之间的流媒体传输的应用层协议。

  1. 协议概述
    • 定义:RTSP(Real Time Streaming Protocol)即实时流传输协议,是 TCP/IP 协议体系中的一个应用层协议,用于控制具有实时性的多媒体数据(如音频、视频等)的传送。
    • 作用:该协议提供了一个可扩展的框架,以控制、按需传送实时数据。它建立并控制一个或多个音频和视频连续媒体的时间同步流,实现客户端与服务器之间的媒体流传输的交互控制,但本身并不发送连续媒体流,而是与其他传输协议(如 RTP、RTCP)配合使用。
  2. 协议特点
    • 可扩展性:新方法和参数很容易加入 RTSP,方便根据不同的需求进行功能扩展。
    • 易解析性:RTSP 是基于文本的协议,采用 ISO10646 字符集,使用 UTF-8 编码方案,可由标准 HTTP 或 MIME 解析器解析。
    • 安全性:使用网页安全机制,具有一定的安全保障。
    • 独立于传输:可使用不可靠数据报协议(UDP)、可靠数据报协议(如基于 TCP 的可靠流协议)等多种传输协议。
    • 多服务器支持:每个流可放在不同服务器上,用户端自动与不同服务器建立几个并发控制连接,媒体同步在传输层执行。
    • 与 HTTP 友好:明智地采用了 HTTP 观念,使现有的网络结构都可重用。
  3. 协议结构
    • 请求和响应:使用类似于 HTTP 的请求 - 响应机制。客户端发送请求命令来控制媒体流的操作,服务器返回相应的响应消息。
    • 方法:定义了一系列方法来描述客户端和服务器之间的交互操作。常见的方法包括 OPTIONS、DESCRIBE、SETUP、PLAY、PAUSE、TEARDOWN 等。
    • 状态码:使用状态码来表示响应的结果,由三位数字组成,类似于 HTTP 状态码。例如,200 表示请求成功,404 表示请求的资源未找到,500 表示服务器内部错误。
    • 会话标识:使用会话标识(Session ID)来标识特定的媒体流传输会话。会话标识在 SETUP 请求后由服务器分配,并在后续的请求和响应消息中使用。
  4. 工作原理
    • 连接建立前
      • 客户端向服务器发送 OPTIONS 请求,查询服务器支持的 RTSP 方法。
      • 服务器返回包含其支持的方法的响应。
    • 媒体描述获取
      • 客户端向服务器发送 DESCRIBE 请求,获取媒体资源的描述信息,如编码格式、比特率等。
      • 服务器返回描述信息,一般参照 SDP(Session Description Protocol)协议格式。
    • 会话建立
      • 客户端根据描述信息向服务器发送 SETUP 请求,建立媒体流传输会话。请求信息主要包括流媒体传输的初始化信息,如传输协议、地址、端口等。
      • 服务器返回响应,其中包含实际选择的具体传输选项,并分配会话标识(Session ID)给客户端。
    • 媒体流控制
      • 播放:客户端使用分配的会话标识发送 PLAY 请求,通知服务器以 SETUP 指定的传输机制开始发送数据。当多个 PLAY 请求到达时,服务器会将请求排成队列,顺序执行。
      • 暂停:客户端发送 PAUSE 请求,请求服务器的媒体流传输临时暂停,不释放资源,可以通过 range 参数在指定时间点暂停。
      • 快进、快退等操作(可选):一些客户端可能支持通过特定的请求参数实现快进、快退等操作,但这不是 RTSP 标准的必需功能。
    • 会话终止
      • 客户端发送 TEARDOWN 请求,停止给定 URL 流发送,释放相关资源。
    • 传输过程中的控制信息交互:在媒体流传输过程中,客户端和服务器通过 RTCP 协议交换控制信息,如同步、丢包统计等,以实现实时同步、传输质量监控和网络适应等功能。
  5. 常用方法详解
    • OPTIONS:一般用于客户端主动发出,获取服务器支持的方法,可以在任何时候发送,不影响服务器的状态。
    • DESCRIBE:客户端向服务器获取 URL 指定的媒体对象的描述信息。
    • SETUP:客户端向服务器请求建立会话并准备传输。
    • PLAY:客户端主动通知服务器以 SETUP 指定的传输机制开始发送数据。
    • PAUSE:客户端请求服务器的媒体流传输临时暂停。
    • TEARDOWN:请求停止给定 URL 流发送,释放相关资源。
  6. 与其他流媒体协议的比较
    • 与 HLS 相比:HLS 基于 HTTP 传输,将音视频流切分为多个小片段,便于通过 HTTP 服务器或 CDN 进行分发,支持自适应码率传输,但延迟较高,通常在 10 秒以上,不适合实时交互场景。而 RTSP 与 RTP、RTCP 协议搭配使用,支持低延迟的实时音视频传输,适用于视频监控、在线教育等实时场景,但不适合通过 HTTP 代理或 CDN 进行分发,在大规模直播场景中可能面临性能瓶颈。
    • 与 MPEG-DASH 相比:MPEG-DASH 也是基于 HTTP 传输的通用的自适应码率流媒体协议,将音视频流切分为多个小片段,支持自适应码率传输和 CDN 分发,且无需专门的服务器,可以使用普通 HTTP 服务器进行部署。但它的延迟同样较高,不适用于实时交互场景,且由于较新,某些设备和浏览器可能不支持该协议。
    • 与 WebRTC 相比:WebRTC 是基于浏览器的实时音视频通信协议,支持端对端的低延迟传输,无需插件,可以在支持的浏览器上直接使用,适用于视频会议、在线聊天等实时交互场景,但互操作性和扩展性较差。
  7. 应用场景
    • 视频监控:可以实现实时监控画面的传输和播放,满足远程查看和监控的需求。
    • 在线教育:支持在线课堂的实时音视频传输,帮助老师和学生进行远程互动教学。
    • 远程会议:使得远程会议参与者能够实时分享和观看音视频内容,提高会议效率和参与感。
  8. 开发模块:

RTSP相关的,大牛直播SDK实现了跨平台的轻量级RTSP服务模块和RTSP播放模块。

轻量级RTSP服务模块:

  •  [基础功能]支持Windows/Linux(含x86_64|aarch64)/Android/iOS平台RTMP直播SDK除推送RTMP外的所有常规功能;
  •  [音频格式]AAC;
  •  [视频格式]H.264、H.265;
  •  [协议类型]RTSP;
  •  [传输模式]支持单播和组播模式;
  •  [端口设置]支持RTSP端口设置;
  •  [鉴权设置]支持RTSP鉴权用户名、密码设置;
  •  [获取session连接数]支持获取当前RTSP服务会话连接数;
  •  [多服务支持]支持同时创建多个内置RTSP服务;
  •  [RTSP url回调]支持设置后的rtsp url通过event回调到上层。

RTSP直播播放模块:

如不单独说明,系Windows、Linux、Android、iOS全平台支持。

  •  [支持播放协议]高稳定、超低延迟、业内首屈一指的RTSP直播播放器SDK;
  •  [多实例播放]支持多实例播放;
  •  [事件回调]支持网络状态、buffer状态等回调;
  •  [视频格式]支持H.265、H.264,此外,还支持RTSP MJPEG播放;
  •  [音频格式]支持AAC/PCMA/PCMU;
  •  [H.264/H.265软解码]支持H.264/H.265软解;
  •  [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解;
  •  [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解;
  •  [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码;
  •  [RTSP模式设置]支持RTSP TCP/UDP模式设置;
  •  [RTSP TCP/UDP自动切换]支持RTSP TCP、UDP模式自动切换;
  •  [RTSP超时设置]支持RTSP超时时间设置,单位:秒;
  •  [RTSP 401认证处理]支持上报RTSP 401事件,如URL携带鉴权信息,会自动处理;
  •  [缓冲时间设置]支持buffer time设置;
  •  [首屏秒开]支持首屏秒开模式;
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
  •  [音视频多种render机制]Android平台,视频:surfaceview/OpenGL ES,音频:AudioTrack/OpenSL ES;
  •  [实时静音]支持播放过程中,实时静音/取消静音;
  •  [实时音量调节]支持播放过程中实时调节音量;
  •  [实时快照]支持播放过程中截取当前播放画面;
  •  [只播关键帧]Windows平台支持实时设置是否只播放关键帧;
  •  [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
  •  [渲染镜像]支持水平反转、垂直反转模式设置;
  •  [等比例缩放]支持图像等比例缩放绘制(Android设置surface模式硬解模式不支持);
  •  [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
  •  [解码前视频数据回调]支持H.264/H.265数据回调;
  •  [解码后视频数据回调]支持解码后YUV/RGB数据回调;
  •  [解码前音频数据回调]支持AAC/PCMA/PCMU数据回调;
  •  [音视频自适应]支持播放过程中,音视频信息改变后自适应;
  •  [扩展录像功能]完美支持和录像SDK组合使用。

RTMP

RTMP(Real Time Messaging Protocol)即实时消息传输协议,是一种设计用来进行实时数据通信的网络协议。以下是关于 RTMP 的详细介绍:

一、协议概述

  1. 定义和目的

    • RTMP 是 Adobe 公司开发的一种用于在互联网上进行实时音频、视频和数据传输的协议。它的主要目的是实现低延迟的流媒体传输,以便在网络上实时播放音频和视频内容。
    • 该协议被广泛应用于在线视频平台、直播平台、视频会议系统等领域,为用户提供高质量的实时流媒体服务。
  2. 工作原理

    • RTMP 基于 TCP 协议,使用可靠的连接来确保数据的准确传输。它将音频、视频和其他数据封装成消息,并通过 TCP 连接进行传输。
    • RTMP 协议分为三个层次:网络层、消息层和块层。网络层负责建立和维护 TCP 连接;消息层负责定义和处理各种类型的消息,如音频、视频、控制消息等;块层负责将消息分割成较小的块,以便在网络上进行传输。

二、协议特点

  1. 低延迟

    • RTMP 协议具有较低的延迟,能够实现实时的音频和视频传输。这使得它非常适合用于直播、视频会议等对实时性要求较高的应用场景。
    • 低延迟的实现主要得益于 RTMP 协议的高效数据传输机制和优化的网络传输策略。
  2. 可靠性高

    • 由于 RTMP 基于 TCP 协议,因此它具有较高的可靠性。TCP 协议能够确保数据的准确传输,避免数据丢失和乱序。
    • RTMP 协议还采用了一些错误检测和纠正机制,如校验和、重传等,进一步提高了数据传输的可靠性。
  3. 支持多种媒体格式

    • RTMP 协议支持多种音频和视频格式,如 H.264、AAC 等。这使得它能够适应不同的应用场景和设备要求。
    • 同时,RTMP 协议还支持动态码率调整、分辨率调整等功能,能够根据网络状况和设备性能自动调整媒体流的质量。
  4. 易于集成

    • RTMP 协议被广泛应用于各种流媒体服务器和客户端软件中,具有良好的兼容性和可扩展性。
    • 开发人员可以使用各种编程语言和开发工具来实现 RTMP 协议的集成,如 Flash、Java、Python 等。

三、应用场景

  1. 在线视频平台

    • RTMP 协议被广泛应用于在线视频平台,如 YouTube、腾讯视频、优酷等。这些平台使用 RTMP 协议来实现视频的上传、转码、存储和播放等功能。
    • 用户可以通过浏览器或客户端软件观看在线视频,享受高质量的视频播放体验。
  2. 直播平台

    • RTMP 协议是直播平台的核心技术之一,它能够实现低延迟的视频直播和互动。
    • 直播平台通常使用 RTMP 协议将主播的视频流推送到服务器,然后再将视频流分发到各个观众的客户端上。观众可以通过弹幕、点赞、评论等方式与主播进行互动。
  3. 视频会议系统

    • RTMP 协议也被应用于视频会议系统中,实现实时的音频和视频通信。
    • 视频会议系统通常使用 RTMP 协议将参会者的视频流和音频流传输到服务器,然后再将这些流分发到其他参会者的客户端上。参会者可以通过视频会议系统进行远程沟通和协作。

四、优势和不足

  1. 优势

    • 低延迟:能够实现实时的音频和视频传输,适用于对实时性要求较高的应用场景。
    • 可靠性高:基于 TCP 协议,具有较高的可靠性,能够确保数据的准确传输。
    • 支持多种媒体格式:能够适应不同的应用场景和设备要求。
    • 易于集成:被广泛应用于各种流媒体服务器和客户端软件中,具有良好的兼容性和可扩展性。
  2. 不足

    • 依赖 Adobe Flash Player:在过去,RTMP 协议主要依赖 Adobe Flash Player 进行播放。然而,随着 Flash Player 的逐渐淘汰,RTMP 协议的播放方式也面临着一些挑战。
    • 不支持移动端:RTMP 协议在移动端的支持相对较弱,需要使用专门的播放器或插件才能实现播放。
    • 占用带宽较高:由于 RTMP 协议需要传输高质量的音频和视频流,因此它占用的带宽相对较高。在网络状况不佳的情况下,可能会出现卡顿和延迟等问题。

五、开发模块

RTMP的技术方案,大牛直播SDK于2015年发布了RTMP推流和RTMP播放模块,甚至还有RTSP转RTMP推送的,以Windows为例,我们实现的功能如下:

RTMP直播推送模块

  • 音频编码:AAC/SPEEX;
  • 视频编码:H.264、H.265;
  • 推流协议:RTMP;
  • [音视频]支持纯音频/纯视频/音视频推送;
  • [屏幕/摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
  • [屏幕]支持屏幕裁剪,根据帧率和推送分辨率,自动推荐码流;
  • [摄像头]支持摄像头选择、分辨率设置、帧率设置;
  • [摄像头]摄像头支持水平反转、垂直反转、0° 90° 180° 270°旋转;
  • [屏幕]支持DXGI采集设置、启/停用Aero;
  • [音频]采集麦克风;
  • [音频]采集扬声器;
  • [预览]支持推送端实时预览;
  • 支持实时静音、取消静音;
  • [对接服务器]支持自建标准RTMP服务器或CDN;
  • 支持断网自动重连、网络状态回调;
  • 屏幕和摄像头合成/多层合成;
  • 支持窗口采集(一般不建议使用);
  • 支持实时动态水印;
  • 支持实时快照;
  • 支持降噪处理、自动增益控制、VAD端点检测;
  • 支持扬声器和麦克风混音;
  • 支持外部编码前音视频数据对接;
  • 支持外部编码后音视频数据对接;
  • 支持RTMP扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;
  • 支持特定机型硬编码;
  • 支持实时音量调节;
  • 支持扩展录像模块;
  • 支持Unity接口;
  • 支持H.264扩展SEI发送模块;
  • 支持Windows7及以上版本。

RTMP播放模块

如不单独说明,系Windows、Linux(含x86_64|aarch64)、Android、iOS全平台支持。

  •  [支持播放协议]高稳定、超低延迟(毫秒级,行业内几无效果接近的播放端)、业内领先的RTMP直播播放器SDK;
  •  [多实例播放]支持多实例播放;
  •  [事件回调]支持网络状态、buffer状态等回调;
  •  [视频格式]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264;
  •  [音频格式]支持AAC/PCMA/PCMU/Speex;
  •  [H.264/H.265软解码]支持H.264/H.265软解;
  •  [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解;
  •  [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解;
  •  [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码;
  •  [缓冲时间设置]支持buffer time设置;
  •  [首屏秒开]支持首屏秒开模式;
  •  [低延迟模式]支持低延迟模式设置(公网200~400ms);
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
  •  [音视频多种render机制]Android平台,视频:SurfaceView/GLSurfaceView,音频:AudioTrack/OpenSL ES;
  •  [实时静音]支持播放过程中,实时静音/取消静音;
  •  [实时音量调节]支持播放过程中实时调节音量;
  •  [实时快照]支持播放过程中截取当前播放画面;
  •  [只播关键帧]Windows平台支持实时设置是否只播放关键帧;
  •  [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
  •  [渲染镜像]支持水平反转、垂直反转模式设置;
  •  [等比例缩放]支持图像等比例缩放绘制(Android设置surface模式硬解模式不支持);
  •  [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
  •  [ARGB叠加]Windows平台支持ARGB图像叠加到显示视频(参看C++的DEMO);
  •  [解码前视频数据回调]支持H.264/H.265数据回调;
  •  [解码后视频数据回调]支持解码后YUV/RGB数据回调;
  •  [解码后视频数据缩放回调]Windows平台支持指定回调图像大小的接口(可以对原视图像缩放后再回调到上层);
  •  [解码前音频数据回调]支持AAC/PCMA/PCMU/SPEEX数据回调;
  •  [音视频自适应]支持播放过程中,音视频信息改变后自适应;
  •  [扩展录像功能]完美支持和录像SDK组合使用。

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

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

相关文章

9.24 C++ 常成员,运算符重载

//my_string.cpp #include "my_string.h" #include <iostream> #include <cstring>using namespace std;My_string::My_string():size(15){this->ptr new char[size];this->ptr[0] \0; //表示串为空串this->len 0;}//有参构造My_…

业务数据批量插入数据库实践

业务数据如何存储一直以来都是项目开发中的一个比较重要的话题。我们要从资源的利用率&#xff0c;业务场景和技术实现多个方面考虑存储的问题。“抛开业务谈技术就是耍流氓”&#xff0c;所有技术架构都要站在实际的业务场景中分析。比如个人端的产品&#xff0c;这种就属于读…

代码随想录算法训练营Day7 | 454.四数相加Ⅱ、383.赎金信、15.三数之和、18.四数之和

454.四数相加Ⅱ 题目 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums…

weblogic中间件漏洞复现

后台弱口令getshell 1.开启环境 cd vulhub-master/weblogic/weak_password docker-compose up -d docker ps 2.f访问靶场 访问/console/login/LoginForm.jsp这个目录进行登录&#xff0c; 默认账号密码&#xff1a;weblogic/Oracle123 需要注意的是单个账号进行登录时&…

C++_CH18_构造函数与析构函数

C_CH18_构造函数与析构函数 1 类的默认成员函数 在编写类的时候&#xff0c;C编译器会默认生成6个默认的函数&#xff0c;但是不显示出来&#xff1a; 需要关注以下两个方面: 第一:我们不写时&#xff0c;编译器默认生成的函数行为是什么&#xff0c;是否满足我们的需求。 …

LabVIEW界面输入值设为默认值

在LabVIEW中&#xff0c;将前面板上所有控件的当前输入值设为默认值&#xff0c;可以通过以下步骤实现&#xff1a; 使用控件属性节点&#xff1a;你可以创建一个属性节点来获取所有控件的引用。 右键点击控件&#xff0c;选择“创建” > “属性节点”。 设置属性节点为“D…

实践出真知!8个案例速通栅格系统

在现代设计中&#xff0c;栅格系统作为一种重要的布局方案&#xff0c;能够有效提升设计的秩序感。对于 UI 设计领域&#xff0c;栅格系统也广泛用于跨屏幕的响应式设计&#xff0c;帮助设计师打造更好的多端体验。本文将简要介绍栅格系统的基本概念和搭建方法&#xff0c;并提…

什么是unix中的fork函数?

一、前言 在本专栏之前的文档中已经介绍过unix进程环境相关的概念了&#xff0c;本文将开始介绍unix中一个进程如何创建出新进程&#xff0c;主要是通过fork函数来实现此功能。本文将包含如下内容&#xff1a; 1.fork函数简介 2.父进程与子进程的特征 3.如何使用fork创建新进程…

依赖不对应导致java文件不能正常显示

项目中若出现非正常显示的java文件&#xff0c;检查下是否依赖版本不对应。&#xff08;前提必须是maven项目&#xff09;

网络原理(4)——网络层(IP)、数据链路层

1. IP 协议 基本概念&#xff1a; 主机&#xff1a;配有 IP 地址&#xff0c;但是不进行路由控制的设备 路由器&#xff1a;即配有 IP 地址&#xff0c;又能进行路由控制 节点&#xff1a;主机和路由器的统称 IP 协议报头格式 1) 4 位版本&#xff1a;实际上只有两个取值&…

通义灵码AI 程序员正式发布:写代码谁还动手啊

虽然见不到面 但你已深潜我心 前几天&#xff0c;在 2024 年的杭州云栖大会上&#xff0c;随着通义大模型能力的全面提升&#xff0c;阿里云通义灵码这位中国的首位 AI 程序员也迎来重大的升级。 一年前这位 AI 程序员还只能完成基础的编程任务&#xff0c;到现在可以做到几…

Leetcode 543. 124. 二叉树的直径 树形dp C++实现

问题&#xff1a;Leetcode 543. 二叉树的直径&#xff08;边权型&#xff09; 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之…

探索未来:MultiOn,AI的下一个革命

文章目录 探索未来&#xff1a;MultiOn&#xff0c;AI的下一个革命背景&#xff1a;为什么选择MultiOn&#xff1f;MultiOn是什么&#xff1f;如何安装MultiOn&#xff1f;简单的库函数使用方法场景应用常见问题及解决方案总结 探索未来&#xff1a;MultiOn&#xff0c;AI的下一…

图表示学习中的Transformer:Graphormer的突破

人工智能咨询培训老师叶梓 转载标明出处 在自然语言处理和计算机视觉等领域&#xff0c;Transformer架构已经成为主导选择。然而&#xff0c;在图级别的预测任务中&#xff0c;它的表现并不如主流的图神经网络&#xff08;GNN&#xff09;变体。这一现象引发了一个思考&#x…

指针变量的自增、自减运算

指针变量的自增、自减运算相比较于普通变量的自增、自减运算又什么区别呢&#xff1f; 让我们先来复习一下普通变量的自增、自减运算 int main() {int i; //定义一个整型变量printf("请输入一个数字&#xff1a;\n");scanf("%d&qu…

JetBrains系列产品无限重置免费试用方法

JetBrains系列产品无限重置免费试用方法 写在前面安装插件市场安装插件 写在前面 支持的产品&#xff1a; IntelliJ IDEA AppCode CLion DataGrip GoLand PhpStorm PyCharm Rider RubyMine WebStorm为了保证无限重置免费试用方法的稳定性&#xff0c;推荐下载安装2021.2.2及其…

QT Creator cmake 自定义项目结构, 编译输出目录指定

1. 目的 将不同的源文件放到不同的目录下进行管理&#xff0c; 如下&#xff1a; build: 编译输出目录 include: 头文件目录 rsources: 资源文件目录 src: cpp文件目录 2. 创建完cmake工程后修改CMakeLists.txt 配置 注 &#xff1a; 这里头文件目录是include, 所以在includ…

CSS05-复合选择器

一、什么是复合选择器 1-1、后代选择器&#xff08;重要&#xff09; 示例1&#xff1a; 示例2&#xff1a; 示例3&#xff1a; 1-2、子选择器 示例&#xff1a; 1-3、并集选择器&#xff08;重要&#xff09; 示例&#xff1a; 1-4、伪类选择器 1、链接伪类选择器 注意事项&am…

CVPR最牛图像评价算法!

本文所涉及所有资源均在 传知代码平台可获取。 目录 概述 一、论文思路 1.多任务学习框架&#xff1a; 2.视觉-语言对应关系&#xff1a; 3.动态损失权重&#xff1a; 4.模型优化和评估&#xff1a; 二、模型介绍 三、详细实现方法 1.图像编码器和语言编码器&#xff08;Image…

德蒂企鹅PAEDIPROTECT:德国医研力作,专为敏感肌婴幼儿量身打造

新生儿的诞生总是伴随着喜悦&#xff0c;也充满着手忙脚乱&#xff0c;尤其是敏感肌宝宝的皮肤护理。宝宝的皮肤如同初绽的花瓣&#xff0c;皮肤角质层薄而脆弱&#xff0c;容易受到外界刺激物的影响&#xff0c;水分流失快&#xff0c;经常会出现干燥、瘙痒、红斑甚至湿疹等症…