# v4l2h264enc The v4l2h264enc plugin uses the V4L2 APIs to encode the video stream. - The plugin uses the H.264 video encoder to provide hardware accelerated H.264 (MPEG-4 Part 10) encoding on supported platforms. - The plugin is based on the [GstVideoEncoder](https://gstreamer.freedesktop.org/documentation/video/gstvideoencoder.html?gi-language=c) base class. ## Inheritance chain [GObject](https://docs.gtk.org/gobject/) → [GstObject](https://gstreamer.freedesktop.org/documentation/gstreamer/gstobject.html?gi-language=c) → [GstElement](https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c) → [GstVideoEncoder](https://gstreamer.freedesktop.org/documentation/video/gstvideoencoder.html?gi-language=c) → GstV4l2VideoEnc → v4l2h264enc The following tables provide information on pad templates and element properties of v4l2h264enc. For use cases, see [Video encode and decode](https://docs.qualcomm.com/doc/80-80021-50/topic/camera-and-video-encode.html) and [Slice-based encoding](https://docs.qualcomm.com/doc/80-80021-50/topic/camera-and-video-encode.html#slice-based-encoding). ## Pad configuration | Pad Name | Capabilities | Capabilities | Capabilities | | --- | --- | --- | --- | |
SINK template: 'sink'



>
>
> | video/x-raw | format: | { (string)NV12, (string)NV21 } | |
SINK template: 'sink'



>
>
> | video/x-raw | width: | [ 1, 32768 ] | |
SINK template: 'sink'



>
>
> | video/x-raw | height: | [ 1, 32768 ] | |
SINK template: 'sink'



>
>
> | video/x-raw | framerate: | [ 0/1, 2147483647/1 ] | |
SRC template: 'src'



>
>
> | video/x-h264 | alignment: | au | |
SRC template: 'src'



>
>
> | video/x-h264 | stream-format: | byte-stream | |
SRC template: 'src'



>
>
> | video/x-h264 | level: | { (string)1, (string)1b, (string)1.1, (string)1.2, (string)1.3, (string)2, (string)2.1, (string)2.2, (string)3, (string)3.1, (string)3.2, (string)4, (string)4.1, (string)4.2, (string)5, (string)5.1 } | |
SRC template: 'src'



>
>
> | video/x-h264 | profile: | { (string)baseline, (string)constrained-baseline, (string)main, (string)high, (string)constrained-high } | | | | | | | | | | | | | | | | ## Element configuration Table : Element properties of v4l2h264enc | Property | Description | | --- | --- | | capture-io-mode | - Capture I/O mode (matches src pad).
- | | device | - Device location.
- | | device-fd | - File descriptor of the device.
- | | device-name | - Name of the device.
- | | extra-controls | - Extra v4l2 control IDs (CIDs) for the device.
- | | min-force-key-unit-interval | - Minimum interval between force-key unit requests in nanoseconds.
- | | name | - The name of the object.
- | | output-io-mode | - Output side I/O mode (matches sink pad).
- | | parent | - The parent of the object.
- | | qos | - Handle Quality-of-Service events from downstream.
- | Table : v4l2ctl extra-controls–user controls | Control name | Control type | Parameters | | --- | --- | --- | | horizontal\_flip | Boolean |


>
>
> | | vertical\_flip | Boolean |


>
>
> | | rotate | Integer |


>
>
> | Table : v4l2ctl extra-controls–codec controls | Control name | Control type | Parameters | | --- | --- | --- | | video\_b\_frames | Integer |


>
>
> | | video\_gop\_size | Integer |


>
>
> | | video\_bitrate\_mode | Menu |


>
>
> | | video\_bitrate | Integer |


>
>
> | | frame\_level\_rate\_control\_enable | Integer |


>
>
> | | maximum\_bytes\_in\_a\_slice | Integer |


>
>
> | | number\_of\_mbs\_in\_a\_slice | Integer |


>
>
> | | slice\_partitioning\_method | Menu |


>
>
> | | ltr\_count | Integer |


>
>
> | | frame\_ltr\_index | Integer |


>
>
> | | use\_ltr\_frames | Bitmask |


>
>
> | | intra\_refresh\_period | Integer |


>
>
> | | intra\_refresh\_period\_type | Menu |


>
>
> | Table : v4l2ctl extra-controls–H.264 codec controls | Control name | Control type | Parameters | | --- | --- | --- | | h264\_i\_frame\_qp\_value | Integer |


>
>
> | | h264\_p\_frame\_qp\_value | Integer |


>
>
> | | h264\_b\_frame\_qp\_value | Integer |


>
>
> | | h264\_minimum\_qp\_value | Integer |


>
>
> | | h264\_maximum\_qp\_value | Integer |


>
>
> | | h264\_entropy\_mode | Menu |


>
>
> | | h264\_level | Menu |


>
>
> | | h264\_profile | Menu |


>
>
> | | enable\_h264\_hierarchical\_coding | Integer |


>
>
> | | h264\_hierarchical\_coding\_type | Menu |


>
>
> | | h264\_number\_of\_hc\_layers | Integer |


>
>
> | | h264\_i\_frame\_minimum\_qp\_value | Integer |


>
>
> | | h264\_i\_frame\_maximum\_qp\_value | Integer |


>
>
> | | h264\_p\_frame\_minimum\_qp\_value | Integer |


>
>
> | | h264\_p\_frame\_maximum\_qp\_value | Integer |


>
>
> | | h264\_b\_frame\_minimum\_qp\_value | Integer |


>
>
> | | h264\_b\_frame\_maximum\_qp\_value | Integer |


>
>
> | | h264\_hierarchical\_lay\_0\_bitrate | Integer |


>
>
> | | h264\_hierarchical\_lay\_1\_bitrate | Integer |


>
>
> | | h264\_hierarchical\_lay\_2\_bitrate | Integer |


>
>
> | | h264\_hierarchical\_lay\_3\_bitrate | Integer |


>
>
> | | h264\_hierarchical\_lay\_4\_bitrate | Integer |


>
>
> | | h264\_hierarchical\_lay\_5\_bitrate | Integer |


>
>
> | Last Published: Mar 26, 2026 [Previous Topic v4l2h265dec](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/v4l2h265dec.md) [Next Topic v4l2h265enc](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/v4l2h265enc.md) Source: [https://docs.qualcomm.com/doc/80-80021-50/topic/v4l2h264enc.html](https://docs.qualcomm.com/doc/80-80021-50/topic/v4l2h264enc.html)