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 属性#
属性 |
含义 |
类型和范围 |
示例说明 |
---|---|---|---|
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(默认) |