Gst-nvurisrcbin#

1. 简介#

此 GstBin 是一个 GStreamer 源 bin。此 bin 是 uridecodebin 的包装器,具有文件循环、RTSP 重连和智能录制的附加功能。

该 bin 允许用户创建简单的 gstreamer 管道用于 AI 多媒体分析。

有关 nvurisrcbin 的更多详细信息,请在安装了 DeepStream 的机器/docker 容器上运行 gst-inspect-1.0 nvurisrcbin

2. 如何在管道中使用 nvurisrcbin#

以下管道是一个示例 gstreamer 管道,配置为接受输入源

gst-launch-1.0 nvurisrcbin \
uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 ! \
m.sink_0 nvstreammux name=m width=1280 height=720 batch-size=1 ! nvmultistreamtiler ! nveglglessink

3. Gst 属性#

3.1 配置 nvurisrcbin 的 Gst 属性#

Gst-nvurisrcbin 特定属性#

属性

含义

类型和范围

示例说明

num-extra-surfaces

设置额外的解码器表面;解码器提供的最小解码表面之外的表面数量

整数,1 到 4,294,967,295

num-extra-surfaces=1 (默认)

gpu-id

设置 nvurisrcbin 组件(如解码器 (nvv4l2decoder) 和 nvvideoconvert)使用的 GPU 设备 ID

整数,1 到 4,294,967,295

gpu-id=0 (默认)

cudadec-memtype

CUDA 解码器缓冲区内存类型,CUDA 解码器缓冲区内存类型。内部由枚举 CudaDecMemType 表示。0 (memtype_device): 设备 1 (memtype_pinned): 主机Pinned 2 (memtype_unified): 统一

整数,0、1 或 2

cudadec-memtype=0 (默认)

drop-frame-interval

丢帧间隔,例如,值为 5 表示解码器输出每第五帧,其他帧将被丢弃。

整数,1 到 30

默认值:0,dGPU / Jetson

dec-skip-frames

解码期间要跳过的帧类型。内部由枚举 SkipFrame 表示。0 (decode_all): 解码所有帧 1 (decode_non_ref): 跳过非参考帧(仅适用于 Jetson 平台) 2 (decode_key): 解码关键帧

整数,0、1 或 2

skip-frames=0 默认值:0,dGPU / Jetson

select-rtp-protocol

用于 RTP 的传输协议

枚举 RtpProtocol 默认值:0,rtp-multi (0): rtp-multi - UDP + UDP 组播 + TCP (4): rtp-tcp - 仅 TCP

select-rtp-protocol=0 (默认)

file-loop

在 EOS 后循环文件源。Src 类型必须是 source-type-uri,并且 uri 以 ‘file:/’ 开头

布尔值

file-loop=false (默认)

rtsp-reconnect-interval

自上次从 RTSP 源接收到数据后等待的超时时间(秒),然后强制重新连接。0=禁用超时

整数,1 到 4,294,967,295

rtsp-reconnect-interval=10

rtsp-reconnect-attempts

尝试重新连接的最大次数。设置为 -1 表示将无限次尝试重新连接。当源类型为 4 且 rtsp-reconnect-interval-sec 为非零正值时有效。

整数,>=-1

rtsp-reconnect-attempts=4

latency

抖动缓冲区大小(毫秒);仅适用于 RTSP 流。

整数,1 到 4,294,967,295

latency=100 (默认)

udp-buffer-size

UDP 缓冲区大小(字节);仅适用于 RTSP 流。

整数,1 到 4,294,967,295

udp-buffer-size=524288 (默认)

smart-record

启用智能录制并选择要响应的事件类型。源必须是 source-type-rtsp 类型

(0):smart-rec-disable - 禁用智能录制 (1):smart-rec-cloud  - 仅通过云消息触发智能录制 (2):smart-rec-multi  - 通过云和本地事件触发智能录制

smart-record=0 (默认)

smart-rec-dir-path

保存录制文件的目录路径。

字符串

绝对或相对路径

smart-rec-file-prefix

默认情况下,Smart_Record 是前缀。为了获得唯一的文件名,每个源都必须提供唯一的前缀

字符串

绝对或相对路径

smart-rec-video-cache

视频缓存大小(秒)。已弃用:请改用 ‘smart-rec-cache’

整数,1 到 4,294,967,295

smart-rec-video-cache=0 (默认)

smart-rec-cache

缓存大小(秒),适用于音频和视频缓存

整数,1 到 4,294,967,295

smart-rec-cache=0 (默认)

smart-rec-container

录制视频的容器格式。支持 MP4 和 MKV 容器。源必须是 source-type-rtsp 类型

(0): smart-rec-mp4 - MP4 容器 (1): smart-rec-mkv - MKV 容器

smart-rec-container=0 (默认)

smart-rec-mode

智能录制模式

(0):smart-rec-mode-av - 如果可用,则录制音频和视频 (1):smart-rec-mode-video - 仅在可用时录制视频 (2):smart-rec-mode-audio - 仅在可用时录制音频

smart-rec-mode=0 (默认)

smart-rec-default-duration

如果未生成停止事件。此参数将确保在预定义的默认持续时间后停止录制。

整数,1 到 4,294,967,295

smart-rec-default-duration=20 (默认)

async-handling

布尔属性,用于处理异步状态更改

布尔值

async-handling=true(默认)

disable-audio

在初始化时禁用音频路径模式

布尔值

disable-audio=true(默认)

ipc-buffer-timestamp-copy

为 nvunixfdsrc 插件复制缓冲区时间戳

布尔值

ipc-buffer-timestamp-copy=false(默认)

ipc-connection-attempts

最大连接尝试次数(-1 = 无限制)

整数。范围:-1 - 2147483647 默认值:-1

ipc-connection-attempts=-1(默认)

ipc-connection-interval

连接尝试之间的连接间隔(微秒)

无符号 64 位整数。范围:0 - 18446744073709551615

ipc-connection-interval=1000000(默认)

ipc-socket-path

用于控制共享内存传输的控制套接字的路径。这可能会在 NULL->READY 转换期间被修改

字符串

ipc-socket-path=null(默认)

low-latency-mode

为解码器上具有 I 帧和 IPPP 帧的比特流设置低延迟模式

布尔值

low-latency-mode=false(默认)

drop-on-latency

告诉抖动缓冲区永远不要超过给定的延迟大小

布尔值

drop-on-latency=true(默认)

message-forward

转发所有子消息

布尔值

message-forward=false(默认)