1. Video Usage

AIBOX-8550 default video framework is Gstreamer.

1.1. Available Gst Plugins

Use gst-inspect to list available media plugins, these qti plugins have hardware acceleration.

root@kalama:~# gst-inspect-1.0 --plugin | grep "qti"
qtibatch:  qtibatch: Batching stream buffers
qtic2adec:  qtic2adec: Codec2 AAC Audio Decoder
qtic2aenc:  qtic2aenc: Codec2 AAC Audio Encoder
qtic2vdec:  qtic2vdec: Codec2 H.264/H.265/VP8/VP9/MPEG Video Decoder
qtic2venc:  qtic2venc: Codec2 H.264/H.265/HEIC Video Encoder
qticamreproc:  qticamreproc: Camera Reprocess
qticvimgpyramid:  qticvimgpyramid: CV Image Pyramid Scaler
qticvoptclflow:  qticvoptclflow: CV Optical Flow
qtijpegenc:  qtijpegenc: Jpeg encoder
qtimetamux:  qtimetamux: Meta muxer
qtimldemux:  qtimldemux: Batching stream buffers
qtimlvclassification:  qtimlvclassification: Machine Learning image classification
qtimlvconverter:  qtimlvconverter: Machine Learning Video Converter
qtimlvdetection:  qtimlvdetection: Machine Learning image object detection
qtimlvpose:  qtimlvpose: Machine Learning Pose
qtimlvsegmentation:  qtimlvsegmentation: Machine Learning image segmentation
qtimlvsuperresolution:  qtimlvsuperresolution: Machine Learning image super resolution
qtiobjtracker:  qtiobjtracker: Object Tracker
qtioverlay:  qtioverlay: QTI Overlay
qtiqmmfsrc:  qtiqmmfsrc: QMMF Video Source
qtisocketsink:  qtisocketsink: QTI Socket Sink Element
qtisocketsrc:  qtisocketsrc: QTI Socket Source Element
qtivcomposer:  qtivcomposer: Video composer
qtivoverlay:  qtivoverlay: Video Overlay
qtivsplit:  qtivsplit: Video stream splitter
qtivtransform:  qtivtransform: Video transformer

1.2. VPU Capability

Video decode up to 4K240/8K60

Video encode up to 4K120/8K30

Concurrent 4K60 decode and 4K60 encode for wireless display

AV1 decode

Native decode support for H.265 Main 10, H.265 Main, H.264 High, and VP9 profile 2

Native encode support for H.265 Main 10, H.265 Main, H.264 high formats

1.3. Video Play

Use qtic2vdec plugin, for example, play h264 video:

export XDG_RUNTIME_DIR=/run/user/root
export WAYLAND_DISPLAY=wayland-1
gst-launch-1.0 filesrc location=/usr/local/test.mp4 ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! qtic2vdec ! videoconvert ! waylandsink sync=true

1.4. Video Encode

Use qtic2venc plugin, for example, encode h264 stream:

gst-launch-1.0 videotestsrc ! qtic2venc ! h264parse ! qtmux ! filesink location=test.mp4 -e

# Use Ctrl+C to stop encoding.