# nvh264enc

Encode H.264 video streams using NVIDIA's hardware-accelerated NVENC encoder API

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstVideoEncoder
                        ╰──GstNvBaseEnc
                            ╰──GstNvDevice0H264Enc
                                ╰──nvh264enc

## Implemented interfaces

    GstPreset

## Factory details

Authors: – Tim-Philipp Müller <tim>, Matthew Waters <matthew>, Seungha Yang <seungha.yang></seungha.yang></matthew></tim>

Classification: – `Codec/Encoder/Video/Hardware`

Rank – primary + 256

Plugin – nvcodec

Package – GStreamer Bad Plug-ins

## Pad Templates

### `sink`

    video/x-raw:
             format: { NV12, YV12, I420, BGRA, RGBA, Y444, VUYA }
              width: [ 145, 4096 ]
             height: [ 49, 4096 ]
          framerate: [ 0/1, 2147483647/1 ]
     interlace-mode: { (string)progressive }

    video/x-raw(memory:GLMemory):
             format: { NV12, YV12, I420, BGRA, RGBA, Y444, VUYA }
              width: [ 145, 4096 ]
             height: [ 49, 4096 ]
          framerate: [ 0/1, 2147483647/1 ]
     interlace-mode: { (string)progressive }

    video/x-raw(memory:CUDAMemory):
             format: { NV12, YV12, I420, BGRA, RGBA, Y444, VUYA }
              width: [ 145, 4096 ]
             height: [ 49, 4096 ]
          framerate: [ 0/1, 2147483647/1 ]
     interlace-mode: { (string)progressive }

Presence – always

Direction – sink

Object type – GstPad

### `src`

    video/x-h264:
              width: [ 145, 4096 ]
             height: [ 49, 4096 ]
          framerate: [ 0/1, 2147483647/1 ]
      stream-format: byte-stream
          alignment: au
            profile: { (string)main, (string)high, (string)high-4:4:4, (string)baseline, (string)constrained-baseline }

Presence – always

Direction – src

Object type – GstPad

## Properties

### aud

    “aud” gboolean

Use AU (Access Unit) delimiter

Flags : Read / Write

Default value : true

Since : 1.18

### b-adapt

    “b-adapt” gboolean

Enable adaptive B-frame insert when lookahead is enabled

Flags : Read / Write

Default value : false

Since : 1.18

### bframes

    “bframes” guint

Number of B-frames between I and P

Flags : Read / Write

Default value : 0

Since : 1.18

### rc-lookahead

    “rc-lookahead” guint

Number of frames for frame type lookahead

Flags : Read / Write

Default value : 0

Since : 1.18

### temporal-aq

    “temporal-aq” gboolean

Temporal Adaptive Quantization

Flags : Read / Write

Default value : false

Since : 1.18

### vbv-buffer-size

    “vbv-buffer-size” guint

VBV(HRD) Buffer Size in kbits (0 = NVENC default)

Flags : Read / Write

Default value : 0

Since : 1.18

### weighted-pred

    “weighted-pred” gboolean

Weighted Prediction

Flags : Read / Write

Default value : false

Since : 1.18

The results of the search are