VideoEncoderExtension#

用于 H.264 视频编码的 NVIDIA GXF 组件。视频编码器 GXF 扩展基于 V4L2 API。它通过与 V4L2 API 接口连接,使用平台上的硬件视频编码引擎。它输出基本 H.264 比特流。

Tegra 和 dGPU 平台支持此扩展。

对于 x86+dGPU,此扩展依赖于 DeepStream。在为 x86+dGPU 运行管道之前,请安装 NVIDIA DeepStream SDK(版本 7.1)。

  • UUID: ea5c44e4-15db-4448-a3a6-f32004303338

  • 版本:1.3.0

  • 作者:NVIDIA

  • 许可证:专有

组件#

此扩展使用三个组件实现:VideoEncoderRequestVideoEncoderResponseVideoEncoderContext

nvidia::gxf::VideoEncoderRequest#

此代码小组件通过对输入缓冲区进行排队来启动 H.264 视频编码过程。

  • 组件 ID: 48251354-3a91-4033-9a0f-8ac2230f1c9c

  • 基本类型:nvidia::gxf::Codelet

参数#

input_frame

接收器,用于获取输入视频缓冲区(输入帧数据)

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_HANDLE

  • 句柄类型:nvidia::gxf::Receiver


inbuf_storage_type

输入缓冲区存储类型

有效值

0:主机内存

1:设备内存

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_UINT32

  • 默认值:1


scheduling_term

异步调度项的句柄,用于获取/设置 VideoEncoderResponse 代码小组件的事件状态。

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_HANDLE

  • 句柄类型:gxf::Handle<gxf::AsynchronousSchedulingTerm>


videoencoder_context

视频编码器上下文组件的句柄

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_HANDLE

  • 句柄类型:gxf::Handle<VideoEncoderContext>


codec

要使用的视频编解码器。仅支持 H.264。

有效值

0:H.264 编解码器

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:0


input_height

输入帧高度

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_UINT32


input_width

输入帧宽度

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_UINT32


input_format

输入帧颜色格式

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_STRING

有效值

nv12:NV12(YUV420,2 个平面:Y,UV 交错)pitch 线性格式

yuv420planar:YUV420 平面(3 个平面:Y、U、V)pitch 线性格式


profile

编码配置文件

有效值

0:Baseline Profile

1:MainProfile

2:High Profile

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:2


bitrate

编码流的比特率,以比特/秒为单位。当 rate_control_mode != 0 时使用此参数。

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:20000000


framerate

帧率(帧/秒)

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:30


level

H.264 level 参数(最大数据速率和分辨率)。此参数仅在 Tegra 上受支持。对于 dGPU,level 参数会根据输入分辨率和数据速率自动设置。

有效值:0 - 14

0:Level 1.0

14:Level 5.1

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:14


hw_preset_type

编码硬件预设类型

有效值

Tegra 预设:0-4

0:V4L2_ENC_HW_PRESET_ULTRAFAST

1:V4L2_ENC_HW_PRESET_FAST

2:V4L2_ENC_HW_PRESET_MEDIUM

3:V4L2_ENC_HW_PRESET_SLOW

dGPU 预设:0-7

0:p0

7:p7

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:1


iframe_interval

两个 IDR 帧之间的间隔。此参数仅在 Tegra 上受支持。

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:30


rate_control_mode

码率控制模式。此参数仅在 Tegra 上受支持。

有效值

0:恒定 QP 模式(码率控制关闭)

1:CBR(恒定比特率模式)

2:VBR(可变比特率模式)

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:1


qp

H.264 量化参数 (QP)。此 QP 值用于恒定 QP 模式。此参数仅在 Tegra 上受支持。

有效值:0-51

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_UINT32

  • 默认值:20


config

编码器配置参数的预设

有效值

pframe_cqp:此配置使用 P 帧,rate_control_mode = 0(恒定 QP),QP=20,iframe_interval = 5,Main profile,hw_preset_type = 0

iframe_cqp:此配置使用所有 IDR 帧(iframe_interval=1),rate_control_mode = 0(恒定 QP),QP=20,Main profile,hw_preset_type = 0

custom:使用用户设置的参数

注意:pframe_cqp、iframe_cqp 配置仅在 Tegra 上受支持。对于 dGPU,请使用“custom”配置。

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_STRING

  • 默认值:custom


nvidia::gxf::VideoEncoderResponse#

此代码小组件通过发布编码比特流(H.264 基本比特流)来完成视频编码过程。

  • 组件 ID: c88585c4-bce0-48d1-9680-2309e63c1ff8

  • 基本类型:nvidia::gxf::Codelet

参数#

output_transmitter

发射器,用于发布压缩数据(输出张量)

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_HANDLE

  • 句柄类型:nvidia::gxf::Transmitter


pool

用于分配输出数据(张量)的内存池。

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_HANDLE

  • 句柄类型:nvidia::gxf::Allocator


outbuf_storage_type

输出缓冲区存储类型

有效值

0:主机内存

1:设备内存

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_INT32

  • 默认值:1


videoencoder_context

视频编码器上下文组件的句柄

  • 标志:GXF_PARAMETER_FLAGS_NONE

  • 类型:GXF_PARAMETER_TYPE_HANDLE

  • 句柄类型:gxf::Handle<VideoEncoderContext>

nvidia::gxf::VideoEncoderContext#

实现视频编码器上下文的组件

  • 组件 ID: c5bdaa9f4b15-43c7-8066-20195122a5b5

  • 基本类型:nvidia::gxf::Component

参数#