The onboard graphics acceleration hardware is capable of accelerating video encoding and decoding tasks. This functionality is exposed from the Video Acceleration API (vaapi) and the gstreamer-vaapi plugins.


Transcoding is the process of taking a media file or stream and converting it to a different format or bitrate; for instance, the module can convert a video captured in H.264 (AVC) to H.265 (HEVC).

Display video codecs with vaapi support:

gst-inspect-1.0 | grep vaapi

Display additional information for a codec using the inspect command:

gst-inspect-1.0 vaapih264dec

The gst-inspect-1.0 can be followed by other codecs to get the related parameters.

See viewing captured content for a few examples on how to playback video content.

Transcode video from one encoded format to another using this command:

gst-launch-1.0 -e filesrc location=test.mp4 ! decodebin ! videoscale ! 'video/x-raw,width=640,height=480' ! vaapih264enc tune=low-power !  h264parse ! mp4mux ! queue ! filesink location=scaled.mp4

Measure pure video decoding + encoding performance:

gst-launch-1.0 filesrc location=test.mp4 ! qtdemux ! queue ! h264parse ! vaapih264dec ! queue ! vaapipostproc ! vaapih264enc tune=low-power ! fpsdisplaysink text-overlay=false video-sink="fakesink sync=false" fps-update-interval=1000 sync=false


For more complete information about compiler optimizations, see our Optimization Notice.