# Run local use cases

Control the GStD framework using a control application that's running on same processor.

## Prerequisites

Activate display:

vi /etc/default/gstd
         OPTARGS=" -a 0.0.0.0"
    
         XDG_RUNTIME_DIR=/dev/socket/weston
    
         WAYLAND_DISPLAY=wayland-1
    
    systemctl daemon-reload
    systemctl restart gstd
    Copy to clipboard

## Single stream encode

1. Create the pipeline:

gst-client-1.0 pipeline_create enc1 qtiqmmfsrc name=camsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/tmp/enc1.mp4
        Copy to clipboard
2. Control the pipeline:

gst-client-1.0 pipeline_play enc1
        Copy to clipboard

    - Send EOS:

gst-client-1.0 event_eos enc1
            Copy to clipboard
    - Stop the pipeline:

gst-client-1.0 pipeline_stop enc1
            Copy to clipboard

## Multistream encode

1. Create the pipeline:

gst-client-1.0 pipeline_create enc2 qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/tmp/mux1.mp4" \ camsrc. ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/tmp/mux2.mp4"
        Copy to clipboard
2. Control the pipeline:

gst-client-1.0 pipeline_play enc2
        Copy to clipboard

    - Send EOS:

gst-client-1.0 event_eos enc2
            Copy to clipboard
    - Stop the pipeline:

gst-client-1.0 pipeline_stop enc2
            Copy to clipboard

## Single display

1. Create the pipeline:

gst-client-1.0 pipeline_create dis1 qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12_Q08C,width=1920,height=1080,framerate=30/1 ! waylandsink fullscreen=true async=true sync=false
        Copy to clipboard
2. Control the pipeline:

    - Play the pipeline:

gst-client-1.0 pipeline_play dis1
            Copy to clipboard
    - Pause the pipeline:

gst-client-1.0 pipeline_pause dis1
            Copy to clipboard
    - Stop the pipeline:

gst-client-1.0 pipeline_stop dis1
            Copy to clipboard

## Multi-display

1. Create the pipeline:

gst-client-1.0 pipeline_create dis2 qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! waylandsink x=0 y=0 width=500 height=400 async=true sync=false camsrc. ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! waylandsink x=510 y=0 width=500 height=400 async=true sync=false
        Copy to clipboard
2. Control the pipeline:

    - Play the pipeline:

gst-client-1.0 pipeline_play dis2
            Copy to clipboard
    - Pause the pipeline:

gst-client-1.0 pipeline_pause dis2
            Copy to clipboard
    - Stop the pipeline:

gst-client-1.0 pipeline_stop dis2
            Copy to clipboard

Last Published: Apr 02, 2026

Previous Topic
 
GStD framework Next Topic

Run TCP use cases