You need to enable JavaScript to run this app.
导航
单源多输出官方模板
最近更新时间:2024.08.07 11:18:26首次发布时间:2023.12.14 19:33:23

本文介绍了单源多输出官方数据流模板。单源多输出模板适用于视频数据流,表示从单个输入算子获取视频流,经过一系列处理后,将处理结果复制多份,分别推送到多个输出算子。

基本信息

您可以在边缘智能控制台的官方模板列表访问本模板。下图展示了本模板的基本信息。
图片

版本列表

本模板提供如下可用版本。

版本名称

说明

v1-RTSP源-物体检测-多个输出-事件推送和RTSP输出

从 RTSP 源拉流作为输入,使用模型服务进行物体检测,然后将检测结果复制成两份,一份结果转换为消息并推送到数据流事件中心进行输出,另一份结果以 RTSP 推流形式输出。

使用说明

v1-RTSP源-物体检测-多个输出-事件推送和RTSP输出

版本说明
v1 版本的数据流包含以下环节:

  1. 从 RTSP 源拉取视频流数据,对视频流进行解码并形成一批视频帧,作为模型服务的输入。
  2. 使用模型服务检测视频帧中的特定对象(如行人、车辆等),并分析目标是否有在 ROI 区域出现或跨越边界线的行为。
  3. 将带有分析信息的结果复制成两份,分别按以下方式进行输出:
    • 一份转换为 JSON 格式的消息元数据,然后推送到边缘智能控制台的数据流事件中心。
    • 一份进行编码形成视频流,然后推送到指定的 RTSP 服务器。

使用前提
在即将部署数据流实例的边缘节点上,您需要完成以下准备工作:

  • 部署一个“物体检测”类型的模型服务。相关操作,请参见部署模型服务
  • 为边缘节点开启“负载水位”功能。相关操作,请参见编辑节点信息

使用 v1 版本

说明

您可以使用官方模板下的版本来创建和部署数据流实例。具体操作,请参见创建和部署数据流实例
以下仅罗列使用当前版本时您需要留意的配置。

  1. 基于数据流版本创建一个数据流实例。

    • 模板:选择 官方模板/视频数据流/单源多输出官方模板
    • 版本:选择 v1-RTSP源-物体检测-多个输出-事件推送和RTSP输出
    • 节点:选择一个节点以部署该数据流实例。您选择的节点需要满足使用前提中的要求。
  2. 在数据流实例中进行数据流编排,为各个算子设置控制参数。

    说明

    关于算子控制参数的详细解释,请参见视频数据流算子

    算子

    控制参数

    类型

    是否必须

    说明

    RTSP拉流带分析

    location

    String

    RTSP 流的 URL。

    latency

    Integer

    要缓存的毫秒数。取值范围:0~4294967295,默认值:2000。

    identifier

    String

    RTSP 流的标识符。

    roi-filters

    N/A

    绘制 ROI 区域。详见对象分析算子的说明。

    line-crossings

    N/A

    绘制绊线。详见对象分析算子的说明。

    h264解码器

    N/A

    无需设置。

    批量合流

    batch-size

    Integer

    批处理大小。取值范围:0~1024, 默认值:1。

    enable-padding

    Boolean

    对视频帧进行缩放时,是否使用黑色边条填充以保持输入纵横比。默认:false。

    height

    Integer

    输出的视频帧的高度,以像素为单位。取值范围:0~4294967295,默认值:720。

    width

    Integer

    输出的视频帧的宽度,以像素为单位。取值范围:0~4294967295,默认值:1280。

    物体检测

    model-service

    String

    用于推理的模型服务。

    input-process-mode

    String

    输入图像的处理方式。可选项:

    • Full_Frame:全帧
    • Clip_Object:剪辑对象

    interval

    Integer

    指定连续跳过进行推断的批次数量。取值范围:0~2147483647,默认值:10。

    对象跟踪

    display-tracking-id

    Boolean

    是否在对象文本中显示跟踪 ID。默认值:true。

    enable-batch-process

    Boolean

    是否启用跨多个流的批处理。默认值:true。

    enable-past-frame

    Boolean

    是否启用将过去的帧轨迹添加到用户元信息中。默认值:false。

    tracking-algorithm

    String

    跟踪算法。可选项:

    • NVDCF_perf(默认)
    • NVDCF_Max_Perf
    • NVDCF_Accuracy

    tracker-height

    Integer

    跟踪器应当操作的帧高度,以像素为单位。取值范围:0~4294967295,默认值:384。

    tracker-width

    Integer

    跟踪器应当操作的帧宽度,以像素为单位。取值范围:0~4294967295,默认值:640。

    结果绘制

    display-bbox

    Boolean

    是否显示边界框。默认值:true。

    display-clock

    Boolean

    是否显示时钟。默认值:false。

    display-mask

    Boolean

    是否显示实例掩码。默认值:false。

    display-text

    Boolean

    是否显示文字。默认值:true。

    流分支

    N/A

    无需设置。

    消息转换

    frame-interval

    Integer

    生成有效载荷的帧间隔。取值范围:0~4294967295,默认值:30。

    conditions

    String

    使用 JSON Path 语法,针对消息元数据设置过滤条件。关于消息元数据的参数结构,请参见数据流事件

    actions

    Array

    条件满足时需要执行的操作列表。可选项:

    • send:发送消息。
    • not send:不发送消息。

    send_image

    Boolean

    是否发送图像数据。默认值:true。

    enable_extra_info

    Boolean

    是否发送额外信息。默认值:true。

    事件推送

    N/A

    无需设置。

    h264编码器

    N/A

    无需设置。

    RTSP推流

    location

    String

    要写入的 RTSP 流服务器的 URL。

    latency

    Integer

    要缓存的毫秒数。取值范围:0~4294967295,默认值:2000。

    protocols

    String

    推送视频流的协议。可选值:tcp、udp、http。默认值:tcp。

最佳实践

如果直接使用官方模板创建数据流实例,您将无法修改数据流的结构。而在实际使用过程中,官方模板版本中的数据流结构可能并不适合您的业务需求。这种情况下,您可以按如下方式来使用官方模板:

  1. 复制官方模板生成一个新的自定义模板。(新的自定义模板包含官方模板下的所有版本。)
  2. 在自定义模板中,找到适合您场景的版本,然后通过数据流编排,修改版本的数据流(如增删算子等)。
  3. 使用自定义模板创建数据流实例。

示例

针对单源多输出官方模板 v1 版本,您可以将输出算子 RTSP推流 算子替换成 虚拟视频设备RTMP推流 算子,或者将 事件推送 算子替换成 虚拟时序设备Kafka消息队列Redis消息队列Ekuiper推送 等算子。