Video
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
T
ranscoding is
the process of taking a media file or stream and converting it to a different format or bitrate; f
or 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.mp4Measure 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