# qsvh264enc

Intel Quick Sync H.264 encoder

## Example launch line

    gst-launch-1.0 videotestsrc ! qsvh264enc ! h264parse ! matroskamux ! filesink location=out.mkv

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstVideoEncoder
                        ╰──GstQsvEncoder
                            ╰──qsvh264enc

## Implemented interfaces

    GstPreset

## Factory details

Authors: – Seungha Yang <seungha@centricular.com></seungha@centricular.com>

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

Rank – none

Plugin – qsv

Package – GStreamer Bad Plug-ins

## Pad Templates

### `sink`

    video/x-raw(memory:D3D11Memory):
             format: NV12
              width: [ 16, 8192 ]
             height: [ 16, 8192 ]

    video/x-raw(memory:D3D12Memory):
             format: NV12
              width: [ 16, 8192 ]
             height: [ 16, 8192 ]

    video/x-raw(memory:VAMemory):
             format: NV12
              width: [ 16, 8192 ]
             height: [ 16, 8192 ]
    video/x-raw:
             format: NV12
              width: [ 16, 8192 ]
             height: [ 16, 8192 ]

Presence – always

Direction – sink

Object type – GstPad

### `src`

    video/x-h264:
              width: [ 16, 8192 ]
             height: [ 16, 8192 ]
      stream-format: { (string)avc, (string)byte-stream }
          alignment: au
            profile: { (string)high, (string)main, (string)constrained-baseline, (string)progressive-high, (string)constrained-high, (string)baseline }

Presence – always

Direction – src

Object type – GstPad

## Properties

### avbr-accuracy

    “avbr-accuracy” guint

AVBR Accuracy in the unit of tenth of percent

Flags : Read / Write

Default value : 0

### avbr-convergence

    “avbr-convergence” guint

AVBR Convergence in the unit of 100 frames

Flags : Read / Write

Default value : 0

### b-frames

    “b-frames” guint

Number of B frames between I and P frames

Flags : Read / Write

Default value : 0

### bitrate

    “bitrate” guint

Target bitrate in kbit/sec, Ignored when selected rate-control mode is constant QP variants (i.e., "cqp", "icq", and "la_icq")

Flags : Read / Write

Default value : 2000

### cabac

    “cabac” Qsv-coding-option *

Enables CABAC entropy coding

Flags : Read / Write

Default value : unknown (0)

### cc-insert

    “cc-insert” Qsv-h264enc-sei-insert-mode *

Closed Caption Insert mode. Only CEA-708 RAW format is supported for now

Flags : Read / Write

Default value : insert (0)

### disable-hrd-conformance

    “disable-hrd-conformance” gboolean

Allow NAL HRD non-conformant stream

Flags : Read / Write

Default value : false

### gop-size

    “gop-size” guint

Number of pictures within a GOP (0: unspecified)

Flags : Read / Write

Default value : 30

### icq-quality

    “icq-quality” guint

Intelligent Constant Quality for "icq" rate-control (0: default)

Flags : Read / Write

Default value : 0

### idr-interval

    “idr-interval” guint

IDR-frame interval in terms of I-frames. 0: every I-frame is an IDR frame, N: "N" I-frames are inserted between IDR-frames

Flags : Read / Write

Default value : 0

### max-bitrate

    “max-bitrate” guint

Maximum bitrate in kbit/sec, Ignored when selected rate-control mode is constant QP variants (i.e., "cqp", "icq", and "la_icq")

Flags : Read / Write

Default value : 0

### max-frame-size

    “max-frame-size” guint

Flags : Read / Write

Default value : 0

Since : 1.24

### max-frame-size-i

    “max-frame-size-i” guint

Flags : Read / Write

Default value : 0

Since : 1.24

### max-frame-size-p

    “max-frame-size-p” guint

Flags : Read / Write

Default value : 0

Since : 1.24

### max-qp-b

    “max-qp-b” guint

Maximum allowed QP value for B-frame types (0: default)

Flags : Read / Write

Default value : 0

### max-qp-i

    “max-qp-i” guint

Maximum allowed QP value for I-frame types (0: default)

Flags : Read / Write

Default value : 0

### max-qp-p

    “max-qp-p” guint

Maximum allowed QP value for P-frame types (0: default)

Flags : Read / Write

Default value : 0

### max-slice-size

    “max-slice-size” guint

Flags : Read / Write

Default value : 0

Since : 1.24

### min-qp-b

    “min-qp-b” guint

Minimum allowed QP value for B-frame types (0: default)

Flags : Read / Write

Default value : 0

### min-qp-i

    “min-qp-i” guint

Minimum allowed QP value for I-frame types (0: default)

Flags : Read / Write

Default value : 0

### min-qp-p

    “min-qp-p” guint

Minimum allowed QP value for P-frame types (0: default)

Flags : Read / Write

Default value : 0

### num-slice

    “num-slice” guint

Flags : Read / Write

Default value : 0

Since : 1.24

### num-slice-b

    “num-slice-b” guint

Flags : Read / Write

Default value : 0

Since : 1.24

### num-slice-i

    “num-slice-i” guint

Flags : Read / Write

Default value : 0

Since : 1.24

### num-slice-p

    “num-slice-p” guint

Flags : Read / Write

Default value : 0

Since : 1.24

### qp-b

    “qp-b” guint

Constant quantizer for B frames (0: default)

Flags : Read / Write

Default value : 0

### qp-i

    “qp-i” guint

Constant quantizer for I frames (0: default)

Flags : Read / Write

Default value : 0

### qp-p

    “qp-p” guint

Constant quantizer for P frames (0: default)

Flags : Read / Write

Default value : 0

### qvbr-quality

    “qvbr-quality” guint

Quality level used for "qvbr" rate-control mode (0: default)

Flags : Read / Write

Default value : 0

### rate-control

    “rate-control” Qsv-h264enc-rate-control *

Rate Control Method

Flags : Read / Write

Default value : vbr (2)

### rc-lookahead

    “rc-lookahead” guint

Number of frames to look ahead for Rate Control, used for "la_vbr", "la_icq", and "la_hrd" rate-control modes

Flags : Read / Write

Default value : 10

### rc-lookahead-ds

    “rc-lookahead-ds” Qsv-h264enc-rclook-ahead-ds *

Downsampling method in look-ahead rate control

Flags : Read / Write

Default value : unknown (0)

### ref-frames

    “ref-frames” guint

Number of reference frames (0: unspecified)

Flags : Read / Write

Default value : 2

### trellis

    “trellis” Qsv-h264trellis *

Flags : Read / Write

Default value : unknown

Since : 1.24

## Named constants

### Qsv-coding-option

#### Members

`unknown` (0) – Unknown
`on` (16) – On
`off` (32) – Off

Since : 1.22

### Qsv-h264enc-rclook-ahead-ds

#### Members

`unknown` (0) – Unknown
`off` (1) – Do not use down sampling
`2x` (2) – Down sample frames two times before estimation
`4x` (3) – Down sample frames four times before estimation

Since : 1.22

### Qsv-h264enc-rate-control

#### Members

`cbr` (1) – Constant Bitrate
`vbr` (2) – Variable Bitrate
`cqp` (3) – Constant Quantizer
`avbr` (4) – Average Variable Bitrate
`la-vbr` (8) – VBR with look ahead (Non HRD compliant)
`icq` (9) – Intelligent CQP
`vcm` (10) – Video Conferencing Mode (Non HRD compliant)
`la-icq` (11) – Intelligent CQP with LA (Non HRD compliant)
`la-hrd` (13) – HRD compliant LA
`qvbr` (14) – VBR with CQP

Since : 1.22

### Qsv-h264enc-sei-insert-mode

#### Members

`insert` (0) – Insert SEI
`insert-and-drop` (1) – Insert SEI and remove corresponding meta from output buffer
`disabled` (2) – Disable SEI insertion

Since : 1.22

### Qsv-h264trellis

#### Members

`unknown` (0x00000000) – Unknown
`off` (0x00000001) – Disable for all frame types
`i` (0x00000002) – Enable for I frames
`p` (0x00000004) – Enable for P frames
`b` (0x00000008) – Enable for B frames

Since : 1.24

The results of the search are