vaapih264enc: GStreamer VA-API Plugins 1.0 Plugins Reference Manual

## vaapih264enc vaapih264enc — A VA-API based H.264 video encoder |

## Description

Encodes raw video streams into H.264 bitstreams.

The “rate-control” property controls the type of encoding. In case of Constant Bitrate Encoding (CBR), the “bitrate” will determine the quality of the encoding. Alternatively, one may choose to perform Constant Quantizer or Variable Bitrate Encoding (VBR), in which case the “bitrate” is the maximum bitrate.

The H264 profile that is eventually used depends on a few settings. If “dct8x8” is enabled, then High profile is used. Otherwise, if “cabac” entropy coding is enabled or “max-bframes” are allowed, then Main Profile is in effect, and otherwise Baseline profile applies. The high profile is imposed by default, which is fine for most software players and settings, but in some cases (e.g. hardware platforms) a more restricted profile/level may be necessary. The recommended way to set a profile is to set it in the downstream caps.

You can also set parameters to adjust the latency of encoding: “quality-level” is a number between 1-7, in the case of the Intel VAAPI driver, where a lower value will produce a higher quality output but with more latency; meanwhile a hihg number will produce a lower quality output with less latency. Also you can set “tune”, if your backend supports it, for low-power mode or high compression.

### Example launch line

    1
    gst-launch-1.0 -ev videotestsrc num-buffers=60 ! timeoverlay ! vaapih264enc ! h264parse ! mp4mux ! filesink location=test.mp4

## Functions

## Types and Values