# x264enc

libx264-based H.264 video encoder

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstVideoEncoder
                        ╰──x264enc

## Implemented interfaces

    GstPreset

## Factory details

Authors: – Josef Zlomek , Mark Nauwelaerts

Classification: – `Codec/Encoder/Video`

Rank – primary

Plugin – x264

Package – GStreamer Ugly Plug-ins

## Pad Templates

### `sink`

    video/x-raw:
          framerate: [ 0/1, 2147483647/1 ]
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
             format: { Y444, Y42B, I420, YV12, NV12, GRAY8, Y444_10LE, I422_10LE, I420_10LE }

Presence – always

Direction – sink

Object type – GstPad

### `src`

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

Presence – always

Direction – src

Object type – GstPad

## Properties

### analyse

    “analyse” GstX264EncAnalyse *

Partitions to consider

Flags : Read / Write

Default value : (none)

### aud

    “aud” gboolean

Use AU (Access Unit) delimiter

Flags : Read / Write

Default value : true

### b-adapt

    “b-adapt” gboolean

Automatically decide how many B-frames to use

Flags : Read / Write

Default value : true

### b-pyramid

    “b-pyramid” gboolean

Keep some B-frames as references

Flags : Read / Write

Default value : false

### bframes

    “bframes” guint

Number of B-frames between I and P

Flags : Read / Write

Default value : 0

### bitrate

    “bitrate” guint

Bitrate in kbit/sec

Flags : Read / Write

Default value : 2048

### byte-stream

    “byte-stream” gboolean

Generate byte stream format of NALU

Flags : Read / Write

Default value : false

### cabac

    “cabac” gboolean

Enable CABAC entropy coding

Flags : Read / Write

Default value : true

### dct8x8

    “dct8x8” gboolean

Adaptive spatial transform size

Flags : Read / Write

Default value : false

### frame-packing

    “frame-packing” GstX264EncFramePacking *

Set frame packing mode for Stereoscopic content

Flags : Read / Write

Default value : auto (-1)

### insert-vui

    “insert-vui” gboolean

Insert VUI NAL in stream

Flags : Read / Write

Default value : true

### interlaced

    “interlaced” gboolean

Interlaced material

Flags : Read / Write

Default value : false

### intra-refresh

    “intra-refresh” gboolean

Use Periodic Intra Refresh instead of IDR frames

Flags : Read / Write

Default value : false

### ip-factor

    “ip-factor” gfloat

Quantizer factor between I- and P-frames

Flags : Read / Write

Default value : 1.4

### key-int-max

    “key-int-max” guint

Maximal distance between two key-frames (0 for automatic)

Flags : Read / Write

Default value : 0

### mb-tree

    “mb-tree” gboolean

Macroblock-Tree ratecontrol

Flags : Read / Write

Default value : true

### me

    “me” GstX264EncMe *

Integer pixel motion estimation method

Flags : Read / Write

Default value : hex (1)

### multipass-cache-file

    “multipass-cache-file” gchararray

Filename for multipass cache file

Flags : Read / Write

Default value : x264.log

### noise-reduction

    “noise-reduction” guint

Noise reduction strength

Flags : Read / Write

Default value : 0

### option-string

    “option-string” gchararray

String of x264 options (overridden by element properties) in the format "key1=value1:key2=value2".

Flags : Read / Write

### pass

    “pass” GstX264EncPass *

Encoding pass/type

Flags : Read / Write

Default value : cbr (0)

### pb-factor

    “pb-factor” gfloat

Quantizer factor between P- and B-frames

Flags : Read / Write

Default value : 1.3

### psy-tune

    “psy-tune” GstX264EncPsyTune *

Preset name for psychovisual tuning options

Flags : Read / Write

Default value : none (0)

### qp-max

    “qp-max” guint

Maximum quantizer

Flags : Read / Write

Default value : 51

### qp-min

    “qp-min” guint

Minimum quantizer

Flags : Read / Write

Default value : 10

### qp-step

    “qp-step” guint

Maximum quantizer difference between frames

Flags : Read / Write

Default value : 4

### quantizer

    “quantizer” guint

Constant quantizer or quality to apply

Flags : Read / Write

Default value : 21

### rc-lookahead

    “rc-lookahead” gint

Number of frames for frametype lookahead

Flags : Read / Write

Default value : 40

### ref

    “ref” guint

Number of reference frames

Flags : Read / Write

Default value : 3

### sliced-threads

    “sliced-threads” gboolean

Low latency but lower efficiency threading

Flags : Read / Write

Default value : false

### speed-preset

    “speed-preset” GstX264EncPreset *

Preset name for speed/quality tradeoff options (can affect decode compatibility - impose restrictions separately for your target decoder)

Flags : Read / Write

Default value : medium (6)

### sps-id

    “sps-id” guint

SPS and PPS ID number

Flags : Read / Write

Default value : 0

### subme

    “subme” guint

Subpixel motion estimation and partition decision quality: 1=fast, 10=best

Flags : Read / Write

Default value : 1

### sync-lookahead

    “sync-lookahead” gint

Number of buffer frames for threaded lookahead (-1 for automatic)

Flags : Read / Write

Default value : -1

### threads

    “threads” guint

Number of threads used by the codec (0 for automatic)

Flags : Read / Write

Default value : 0

### trellis

    “trellis” gboolean

Enable trellis searched quantization

Flags : Read / Write

Default value : true

### tune

    “tune” GstX264EncTune *

Preset name for non-psychovisual tuning options

Flags : Read / Write

Default value : (none)

### vbv-buf-capacity

    “vbv-buf-capacity” guint

Size of the VBV buffer in milliseconds

Flags : Read / Write

Default value : 600

### weightb

    “weightb” gboolean

Weighted prediction for B-frames

Flags : Read / Write

Default value : false

## Named constants

### GstX264EncAnalyse

#### Members

`i4x4` (0x00000001) – i4x4
`i8x8` (0x00000002) – i8x8
`p8x8` (0x00000010) – p8x8
`p4x4` (0x00000020) – p4x4
`b8x8` (0x00000100) – b8x8

### GstX264EncFramePacking

#### Members

`auto` (-1) – Automatic (use incoming video information)
`checkerboard` (0) – checkerboard - Left and Right pixels alternate in a checkerboard pattern
`column-interleaved` (1) – column interleaved - Alternating pixel columns represent Left and Right views
`row-interleaved` (2) – row interleaved - Alternating pixel rows represent Left and Right views
`side-by-side` (3) – side by side - The left half of the frame contains the Left eye view, the right half the Right eye view
`top-bottom` (4) – top bottom - L is on top, R on bottom
`frame-interleaved` (5) – frame interleaved - Each frame contains either Left or Right view alternately

### GstX264EncMe

#### Members

`dia` (0) – dia
`hex` (1) – hex
`umh` (2) – umh
`esa` (3) – esa
`tesa` (4) – tesa

### GstX264EncPass

#### Members

`cbr` (0) – Constant Bitrate Encoding
`quant` (4) – Constant Quantizer
`qual` (5) – Constant Quality
`pass1` (17) – VBR Encoding - Pass 1
`pass2` (18) – VBR Encoding - Pass 2
`pass3` (19) – VBR Encoding - Pass 3

### GstX264EncPreset

#### Members

`None` (0) – No preset
`ultrafast` (1) – ultrafast
`superfast` (2) – superfast
`veryfast` (3) – veryfast
`faster` (4) – faster
`fast` (5) – fast
`medium` (6) – medium
`slow` (7) – slow
`slower` (8) – slower
`veryslow` (9) – veryslow
`placebo` (10) – placebo

### GstX264EncPsyTune

#### Members

`none` (0) – No tuning
`film` (1) – Film
`animation` (2) – Animation
`grain` (3) – Grain
`psnr` (4) – PSNR
`ssim` (5) – SSIM

### GstX264EncTune

#### Members

`stillimage` (0x00000001) – Still image
`fastdecode` (0x00000002) – Fast decode
`zerolatency` (0x00000004) – Zero latency

The results of the search are