Gst-nvvideotestsrc#
Gst-nvvideotestsrc
插件使用 CUDA 生成各种格式和模式的视频测试数据,这些数据直接写入使用 video/x-raw(memory:NVMM) 数据类型的 GPU 输出缓冲区。
该插件还可以用于输入原始视频并在输出端生成 GPU 缓冲区。该插件提供属性来引入缓冲区延迟抖动,这可以用于在本地模拟网络条件。
注意
Gst-nvvideotestsrc
插件目前仅在 X86 上受支持。
输出#
本节总结了 Gst-nvvideotestsrc
插件的输出。
输出
带有测试模式的 Gst 缓冲区
视频格式:NV12、I420、RGBA (NVMM)
控制参数
gpu-id
animation-mode
memtype
blocksize
pattern
Gst 属性#
下表描述了 Gst-nvvideotestsrc
插件的 Gst
属性。
属性 |
含义 |
类型和范围 |
示例注释 |
---|---|---|---|
animation-mode |
对于动画模式,控制动画的计数器。 |
枚举 “GstNvVideoTestSrcAnimationMode” 默认值:0,“frames” (0): frames - 帧计数 (1): wall-time - 挂钟时间 (2): running-time - 运行时间 |
animation-mode=0 |
blocksize |
每个缓冲区要读取的大小(字节为单位)(-1 = 默认值) |
无符号整数。范围:0 - 4294967295 默认值:4096 |
blocksize=4096 |
gpu-id |
分配缓冲区的 GPU ID |
无符号整数。范围:0 - 2147483647 默认值:0 |
gpu-id=0 |
num-buffers |
在发送 EOS 之前要输出的缓冲区数量(-1 = 无限制) |
整数。范围:-1 - 2147483647 默认值:-1 |
num-buffers=300 |
pattern |
要生成的测试模式类型 |
枚举 “GstNvVideoTestSrcPattern” 默认值:0,“smpte” (0): smpte - SMPTE 彩条 (1): mandelbrot - Mandelbrot 集 (2): gradient - 渐变 |
pattern=1 |
memtype |
用于分配缓冲区的内存类型 |
枚举 “NvBufSurfaceMemType” 默认值:2,“Device CUDA memory”(设备 CUDA 内存) (1): Host/Pinned CUDA memory - host(主机/固定 CUDA 内存 - 主机) (2): Device CUDA memory - device(设备 CUDA 内存 - 设备) (3): Unified CUDA memory - unified(统一 CUDA 内存 - 统一) |
memtype=2 |
do-timestamp |
将当前流时间应用于缓冲区 |
布尔值。默认值:false |
do-timestamp=true |
is-live |
是否充当实时源。根据 src caps 上的 FPS 设置引入延迟 |
布尔值。默认值:false |
is-live=true |
location |
原始视频文件输入的文件位置。当未指定文件位置时,将使用模式。 |
字符串。默认值:NULL |
location=test.rgba |
file-loop |
循环遍历输入文件,直到达到 num-buffers(如果指定)或无限循环 |
布尔值。默认值:false |
file-loop=true |
max-jitter |
可以应用于每个缓冲区的最大抖动(以毫秒为单位)。仅当 is-live=true 时适用。应用于每个缓冲区的随机抖动范围高达“max-jitter”。 |
整数,≥0 默认值:0 |
max-jitter=100 |
fixed-jitter |
固定抖动值列表(以毫秒为单位)。列表将在整个序列中循环使用。仅当 is-live=true 时适用。如果指定了“fixed-jitter”,则忽略“max-jitter”(如果指定)。 |
分号分隔的整数数组。所有值 ≥0。默认值:“” |
fixed-jitter=30;40;100;0;0 |
如何测试#
nvvideotestsrc
当前仅支持 X86。尚不支持 “Jetson + dGPU”。
在 DGPU 设置上运行以下参考 gst-launch-1.0 pipeline。
默认 SMPTE 模式 - 720p 60Hz
gst-launch-1.0 nvvideotestsrc ! queue ! nveglglessink -e
Mandelbrot 模式 - 1080p 60Hz
gst-launch-1.0 nvvideotestsrc pattern=mandelbrot ! 'video/x-raw(memory:NVMM), width=1920, height=1080, framerate=60/1' ! queue ! nveglglessink -e
Gradient 模式 - 720p 60Hz
gst-launch-1.0 gst-launch-1.0 nvvideotestsrc pattern=2 ! queue ! nveglglessink -e