VideoEncoderExtension

NVIDIA GXF component for H.264 video encode. The video encoder GXF extension is based on V4L2 APIs. It uses the hardware video encode engine on the platform by interfacing with V4L2 APIs. It gives out elimetary H.264 bit stream.

The extension has dependency on nvidia v4l2 driver package (nvv4l2.deb) for x86 platform. Please install v4l2 driver package on x86 system before running pipelines. The nvv4l2 packages are stored in artifactory at https://urm.nvidia.com/ui/native/sw-isaac-gxf-generic-local/dependencies/internal/multimedia/

We can select package depending on the platform config.

nvv4l2 Package

Package Name

Config

nvv4l2_x86_ds-6.1.deb

x86_64_cuda_11_6

nvv4l2_x86_ds-6.1.deb

x86_64_cuda_11_7

nvv4l2_x86_ds-6.2.deb

x86_64_cuda_11_8

NA

Other

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

  • Version: 0.0.1

  • Author: NVIDIA

  • License: Proprietary

Components

nvidia::gxf::VideoEncoder

Encode H.264 video streams using V4l2 APIs.

  • Component ID: b0661bf2-7ef2-47f5-a271-0b0931339ba6

  • Base Type: nvidia::gxf::VideoEncoder

Parameters

input_frame

Receiver to get the input video Buffer(input frame data)

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Receiver


output_transmitter

Transmitter to publish the compressed data(output tensor)

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Transmitter


pool

Memory pool for allocating output data(tensor).

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_HANDLE

  • Handle Type: nvidia::gxf::Allocator


inbuf_storage_type

Input buffer storage type

Valid values:

0: Host memory

1: Device memory

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32


outbuf_storage_type

Output buffer storage type

Valid values:

0: Host memory

1: Device memory

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32


Device

Path to the V4L2 device,

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_STRING

  • Default: “/dev/nvidia0”


codec

Video codec to be used

Valid values:

0: H.264 codec

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32

  • Default: 0


input_height

Input frame height

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT32


input_width

Input frame width

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_UINT32


input_format

Input frame color format

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_STRING

Valid values:

nv12pl: NV12(YUV420) pitch linear format


profile

Encode profile

Valid values:

0: Baseline Profile

1: MainProfile

2: High Profile

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32


bitrate

Bitrate of the encoded stream, in bits per second

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32

  • Default: 20000000


framerate

Frame rate (frames per second)

  • Flags: GXF_PARAMETER_FLAGS_NONE

  • Type: GXF_PARAMETER_TYPE_INT32

  • Default: 30