Gst-nvvideoconvert#
此插件执行视频颜色格式转换。它接受 NVMM 内存以及 RAW (使用 calloc() 或 malloc() 分配的内存),并在输出端提供 NVMM 或 RAW 内存。

输入和输出#
输入
Gst Buffer 批量缓冲区
NvDsBatchMeta
格式:(NVMM/RAW)
dGPU - NV12, I420, P010_10LE, BGRx, RGBA, GRAY8, RGB, BGR, Y444, Y444_10LE, Y444_12LE, BGR10A2_LE, UYVP, I420_12LE, RGB10A2_LE, GRAY16_LE
Jetson - NV12, I420, P010_10LE, BGRx, RGBA, GRAY8, RGB, BGR, BGR10A2_LE, UYVP, UYVY, YUY2, YVYU, Y42B, I420_12LE, GRAY16_LE
控制参数
gpu-id (仅限 dGPU)
nvbuf-memory-type
src-crop
dst-crop
interpolation-method
compute-hw
flip-method
输出
Gst Buffer
NvDsBatchMeta
格式:(NVMM/RAW)
dGPU - NV12, I420, P010_10LE, BGRx, RGBA, GRAY8, RGB, BGR, Y444, Y444_10LE, Y444_12LE, BGR10A2_LE, UYVP, I420_12LE, RGB10A2_LE, GRAY16_LE
Jetson - NV12, I420, P010_10LE, BGRx, RGBA, GRAY8, RGB, BGR, BGR10A2_LE, UYVP, UYVY, YUY2, YVYU, Y42B, I420_12LE, GRAY16_LE
注意
对于 12 位 NV12 格式,输入/输出 caps 显示 I420_12LE。但数据被处理为半平面 12 位数据。这是一个权宜之计,因为 gstreamer v1.16 没有针对 12 位 NV12 的特定 caps。下游组件应将其视为仅 12 位 NV12 进行处理。
仅为 I420_12LE、Y444_10LE 和 Y444_12LE 格式添加了 NVMM 内存支持。
特性#
此插件支持 NVMM 到 NVMM、RAW 到 NVMM 以及 NVMM 到 RAW 和 RAW 到 RAW 缓冲区类型转换的缩放和转换。该插件支持输入和输出帧的裁剪。
Gst 属性#
下表描述了 Gst-nvvideoconvert 插件的 Gst 属性。
Gst-nvvideoconvert gst 属性# 属性
含义
类型和范围
示例注释
nvbuf-memory-type
要分配的内存类型。对于 dGPU
0 (nvbuf-mem-default): 默认内存,cuda 设备
1 (nvbuf-mem-cuda-pinned): 锁定/主机 CUDA 内存
2 (nvbuf-mem-cuda-device) 设备 CUDA 内存
3 (nvbuf-mem-cuda-unified): 统一 CUDA 内存
对于 Jetson
0 (nvbuf-mem-default): 默认内存,表面数组
1 (nvbuf-mem-cuda-pinned): 锁定/主机 CUDA 内存
2 (nvbuf-mem-cuda-device) 设备 CUDA 内存
3 (nvbuf-mem-cuda-unified): 统一 CUDA 内存
4 (nvbuf-mem-surface-array): 表面数组内存
enum GstNvVidConvBufMemoryType
src-crop
像素位置:输入图像的 left:top:width:height,将被裁剪并转换为输出缓冲区。如果裁剪位置超出范围,则这些值将被钳制到输入图像的图像边界。此属性将应用于批处理中的所有输入图像
字符串
src-crop=”20:40:150:100”
dest-crop
像素位置:left:top:width:height 是输出图像中输入图像将被转换到的位置。如果裁剪位置超出范围,则这些值将被钳制到输出图像的图像边界。此属性将应用于批处理中的所有输出图像
字符串
dest-crop=”20:40:150:100”
interpolation-method
插值方法
0: 最近邻
1: 双线性
2: 算法 1 (GPU—三次, VIC—5 抽头)
3: 算法 2 (GPU—超级, VIC—10 抽头)
4: 算法 3 (GPU—LanzoS, VIC—智能)
5: 算法 4 (GPU—忽略, VIC—最佳)
6: 默认 (GPU—最近邻, VIC—最近邻)
enum GstInterpolationMethod
interpolation-method=1 默认值为 6。
compute-hw
计算硬件类型
0: 默认 (dGPU 使用 GPU,Jetson 使用 VIC)
1: GPU
2: VIC
enum GstComputeHW
compute-hw=0 默认值为 0。
gpu-id
用于格式转换的 GPU 设备 ID
整数,0 到 4,294,967,295
gpu-id=0
output-buffers
缓冲区池的输出缓冲区数量
无符号整数,1 到 4,294,967,295
output-buffers=4
bl-output
仅适用于 Jetson 的标志,用于为 NV12 格式输出块线性 NVMM 缓冲区。对于 dGPU、软件内存(输出缓冲区)和 NV12 以外的格式,此标志将被忽略
布尔值。默认值:false
bl-output=1
flip-method
旋转方法类型。此标志适用于 Jetson 和 GPU。
翻转方法
0: 恒等 (无旋转)
1: 逆时针旋转 90 度
2: 旋转 180 度
3: 顺时针旋转 90 度
4: 水平旋转
5: 沿右上/左下对角线旋转
6: 垂直旋转
7: 沿左上/右下对角线旋转
enum GstNvDsVideoFlipMethod
flip-method=1 默认值为 0。
allow-odd-crop
允许源和目标裁剪矩形的奇数维度的标志
布尔值
allow-odd-crop=1 默认值为 1。
contiguous-buffers
启用连续输出缓冲区
布尔值
contiguous-buffers=1 默认值为 0。
disable-passthrough
在初始化时禁用直通模式
布尔值
disable-passthrough=1 默认值为 0。
copy-hw
选择用于表面复制的硬件
1: GPU
2: VIC
标志:可读,可写,可控
enum GstNvCopyHWType
copy-hw=2 默认值为 1。