# Run sample applications Qualcomm^®^ Linux^®^ provides sample applications for multimedia and AI use cases, including retail, Qualcomm^®^ Edge AI Box Solutions, and IP cameras. Two main groups of sample applications are available: - Multimedia sample applications demonstrate camera, video, and audio features. - AI sample applications showcase AI and machine learning (ML) capabilities. Use one of the following methods to run sample applications on the development kit. **Use the Qualcomm Visual Studio Code Extension to run sample applications** Run sample applications using the integrated development environment. For instructions, see [Qualcomm Visual Studio Code Extension Reference Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-79972-1/quick_start.html). https://docs.qualcomm.com/bundle/publicresource/topics/80-79972-1/quick_start.html **Use a host computer to run sample applications** Run sample applications manually using an Ubuntu, Windows^®^, or macOS^®^-based host computer. For instructions, see [Run sample applications using a host computer](https://docs.qualcomm.com/doc/80-70030-251/topic/demo_app.html#run-apps-using-host-computer). https://docs.qualcomm.com/doc/80-70030-251/topic/demo_app.html#run-apps-using-host-computer **Use Qdemo to run sample applications** Use Qdemo, a preinstalled GUI-based application that allows you to run sample applications without a host setup. For instructions, see [Qualcomm Dragonwing RB3 Gen 2 Development Kit quickstart – Linux](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-253/qsg-landing-page.html). https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-253/qsg-landing-page.html ## Run sample applications using a host computer You can run the sample application on the Qualcomm Dragonwing^™^ RB3 Gen 2 Development Kit using a host computer with Windows, Ubuntu, or mac operating system. ### Prerequisites Before running any application, ensure to [Set up the device](https://docs.qualcomm.com/doc/80-70030-251/topic/set_up_the_device.html#set-up-the-device). ### Run multimedia sample applications The multimedia sample applications show use cases for camera, display, and video streams on the device. #### Multicamera streaming or encoding (Dash cam) The **gst-multi-camera-example** command-line application shows simultaneous streaming from two camera sensors on the Dragonwing RB3 Gen 2 device. The application composes the camera feeds side-by-side to display on a screen or encodes and stores the video streams to files. The following figure shows the workflow of the gst-multi-camera-example (Dash cam) application, divided into two functional sections: Composition and Encoding. In the Composition section, Camera 0 and Camera 1 feed into a Composer, which sends output to a display. In the Encoding section, each camera stream is processed by an H.264 encoder and then saved to a file. Camera 0 Composition Composer Display Camera 1 Camera 0 Encoding H.264 encoder Write to file H.264 encoder Camera 1 Write to file **Figure: Dash cam application workflow**
Last Published: Jul 20, 2026
**Video: Multicamera application** **Example usage** To start the application, run the following use cases from the SSH terminal: 1. To view the sample application on the HDMI display, run the following export command: export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1 Copy to clipboard 2. To view the `waylandsink` output, run the following command: gst-multi-camera-example -o 0 Copy to clipboard 3. To store the encoder output, do the following: 1. Run the following command: gst-multi-camera-example -o 1 Copy to clipboard The device stores the encoded files at `/opt/cam1_vid.mp4` and `/opt/cam2_vid.mp4` for camera 1 and camera 2, respectively. 2. To pull the files from the host computer, run the following command: scp root@:/opt/cam1_vid.mp4 Copy to clipboard Note When prompted for a password, enter `oelinux123`. 3. To play the encoder output, you can use any media player that supports MP4 files. - To stop the use case, select Ctrl + C. - To display the available help options, run the following command: gst-multi-camera-example --help Copy to clipboard - The `GST_DEBUG` environment variable controls the GStreamer debug output. Set the required level to allow logging. For example, to log all warnings, run the following command: export GST_DEBUG=2 Copy to clipboard #### Multichannel video decode and compose (Video wall) The **gst-concurrent-videoplay-composition** command-line application allows concurrent video decoding and playback for AVC-coded videos and composes them on a display for video wall applications. The application requires at least one input video file, which should be an MP4 file with the AVC codec. The figure shows the workflow of the gst-concurrent-videoplay-composition (video wall) application. The workflow shows how four video streams are read from files, decoded using H.264 encoders, and composed into a single output. The Composer then sends the combined stream to a display for concurrent playback. Read from file H.264 encoder Composer Display H.264 encoder Read from file H.264 encoder Read from file H.264 encoder Read from file **Figure: Video wall application workflow**
Last Published: Jul 20, 2026
**Video: Multichannel decode and display application** **Example usage** 1. To transfer prerecorded or test videos that are in the AVC-encoded MP4 (H.264) format (with the filename as ``) to your device, run the following command on the host computer: scp root@[DEVICE IP-ADDR]:/opt/ Copy to clipboard Note When prompted for a password, enter `oelinux123`. 2. To view the sample application on the HDMI display, run the following export command from the SSH terminal: export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1 Copy to clipboard > > > 3. To start concurrent playback for four channels, run the following command: gst-concurrent-videoplay-composition -c 4 -i /opt/.mp4 -i /opt/.mp4 -i /opt/.mp4 -i /opt/.mp4 Copy to clipboard Note - `-c`: specifies the number of streams to be decoded for composition. 2, 4, 8, 16, or 32 streams can be decoded. - `-i`: specifies the absolute path to the input video file. - To stop the use case, select CTRL + C. - To display the available help options, run the following command: gst-concurrent-videoplay-composition --help Copy to clipboard - The `GST_DEBUG` environment variable controls the GStreamer debug output. Set the required level to allow logging. For example, to log all warnings, run the following command: export GST_DEBUG=2 Copy to clipboard ### Run AI sample applications AI sample applications show use cases for object detection and parallel inferencing on input streams from a camera, video file, or Real-Time Streaming Protocol (RTSP) stream on the Dragonwing RB3 Gen 2 device. These applications use AI models from the [Qualcomm® AI Hub](https://aihub.qualcomm.com/iot/models) and label files from GitHub. The following figure shows the workflow for running AI sample applications on the Dragonwing RB3 Gen 2 device. The procedure involves downloading the models and labels, transferring them to the Dragonwing RB3 Gen 2 device, and running the sample applications. > > > > > > > > > > > > Downloadmodels and labels > > > > Transfer downloadedfiles to the device > > > > Runsample apps > > > > > > > > > > > > > > **Figure: Workflow for running AI sample applications** **Download AI models and labels** 1. Download the models for the AI sample applications. The following table lists the AI models required for sample applications: | Sample application | AI models | | --- | --- | | AI object detection | [yolox_quantized.tflite](https://aihub.qualcomm.com/iot/models/yolox?searchTerm=yolo) | |
Parallel AI inference | [yolox_quantized.tflite](https://aihub.qualcomm.com/iot/models/yolox?searchTerm=yolo) | |
Parallel AI inference | [Inception-v3](https://aihub.qualcomm.com/iot/models/inception_v3) | |
Parallel AI inference | [HRNetPose](https://aihub.qualcomm.com/iot/models/hrnet_pose) | |
Parallel AI inference | [DeepLabV3-Plus-MobileNet](https://aihub.qualcomm.com/iot/models/deeplabv3_plus_mobilenet) | | | | | | | | | | 2. On the target device, obtain the download_artifacts.sh script, set executable permissions, and run the script to download the model and label files. curl -L -O https://raw.githubusercontent.com/quic/sample-apps-for-qualcomm-linux/refs/heads/main/qualcomm-linux/scripts/download_artifacts.sh Copy to clipboard chmod +x download_artifacts.sh Copy to clipboard ./download_artifacts.sh Copy to clipboard Note To execute custom models or labels with the sample applications, see [Qualcomm IM SDK reference](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-50/qimsdk_landing_page.html). #### AI object detection The **gst-ai-object-detection** sample application shows the hardware capability to detect objects on input streams from a camera, video file, or RTSP stream. The following figure shows the workflow of the object detection application. The pipeline receives the input stream, preprocesses it, runs inferences on AI hardware, and displays the results on the screen. **Figure: Object detection application workflow**
Last Published: Jul 20, 2026
**Video: Object detection application** **Example usage** It’s mandatory to push the model and label files to the device to run the sample application. For details, see [Download AI models and labels](https://docs.qualcomm.com/doc/80-70030-251/topic/run_apps_manually_on_host.html#procedure-ai). 1. Begin a new SSH session and start the HDMI display monitor if you haven’t already: ssh root@ Copy to clipboard 2. To view the sample application on the HDMI display, run the following export command from the SSH terminal: export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1 Copy to clipboard 3. Edit the `/etc/configs/config_detection.json` file on your device. { "file-path": "/etc/media/video.mp4", "ml-framework": "tflite", "yolo-model-type": "yolox", "model": "/etc/models/yolox_quantized.tflite", "labels": "/etc/labels/yolox.json", "threshold": 40, "runtime": "dsp" } Copy to clipboard For more information about the fields in the **config\_detection.json** file, see [Config JSON field description](https://docs.qualcomm.com/doc/80-70030-251/topic/run_apps_manually_on_host.html#object-detection-config-json-field-description). 4. To start the application, run the following command: gst-ai-object-detection Copy to clipboard - To stop the use case, select Ctrl + C. - To display the available help options, run the following command: gst-ai-object-detection -h Copy to clipboard - The `GST_DEBUG` environment variable controls the GStreamer debug output. Set the required level to allow logging. For example, to log all warnings, run the following command: export GST_DEBUG=2 Copy to clipboard **Config JSON field description** | Field | Values/description | | --- | --- | | **ml-framework** | Use one of the following models:



>
>
>

    >
  • snpe: Qualcomm ® Neural Processing SDK


  • >
  • tflite: LiteRT


  • >
  • onnx: ONNX


  • >
  • qnn: Qualcomm ® AI Engine direct


  • >
| | **yolo-model-type** | Runs the `yolov5`, `yolov8`, `yolox` and `yolonas` models, respectively.
For more information about models and labels, see [Sample model and label files](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-50/gst-ai-object-detection.html#gst-ai-object-detection__section_hds_vxp_mdc). | | **runtime** | Use one of the following runtimes:



>
>
>

    >
  • cpu


  • >
  • gpu


  • >
  • dsp


  • >
| | **Input source** | Use one of the following input sources:



>
>
>

    >
  • camera: Primary camera (0) or secondary camera (1)


  • >
  • file-path: Directory path to the video file


  • >
  • rtsp-ip-port: Address of the RTSP stream in the rtsp://<ip>:<port>/<stream> format


  • >
  • enable-usb-camera: TRUE or FALSE


  • >
| | **output-ip-address** | Output server IP address | | **port** | Output server port | | **output-type** | Use one of the following output types:



>
>
>

    >
  • waylandsink: To display output on Wayland


  • >
  • filesink: To store output in file


  • >
  • rtpsink: To stream output on server


  • >
| | **USB camera video-format and resolution** | Use one of the following video formats:



>
>
>

    >
  • nv12


  • >
  • yuy2


  • >
  • mjpeg


  • >




Use one of the following resolution fields:



>
>
>

    >
  • width: Input USB camera source resolution width


  • >
  • height: Input USB camera source resolution height


  • >
  • framerate: Input USB camera source framerate


  • >
| | **output-file** | Output filename. The default filename is `output_detection.mp4`. | #### Parallel AI inference The **gst-ai-parallel-inference** command-line application shows the hardware capability to perform four parallel inference operations on input streams from a camera, video file, or Real-Time Streaming Protocol (RTSP) stream. The following figure shows the workflow of the Parallel AI inference application. The pipeline detects objects, classifies objects, detects poses, and segments images on the input stream. The screen displays the results side-by-side. **Figure: Parallel inference application workflow**
Last Published: Jul 20, 2026
**Video: Parallel inferencing application** **Example usage** You must obtain the required model and label files on the device before running the sample application. For details, see [Download AI models and labels](https://docs.qualcomm.com/doc/80-70030-251/topic/run_apps_manually_on_host.html#procedure-ai). 1. Begin a new SSH session and start the HDMI display monitor if you haven’t already: ssh root@ Copy to clipboard 2. To view the sample application on the HDMI display, run the following export command from the SSH terminal: export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1 Copy to clipboard 3. Edit the `/etc/configs/config-parallel-inference.json` file on your device. { "file-path": "/etc/media/video.mp4", "detection-model": "/etc/models/yolox_quantized.tflite", "detection-labels": "/etc/labels/yolox.json", "pose-model": "/etc/models/hrnet_pose_quantized.tflite", "pose-labels": "/etc/labels/hrnet_pose.json", "segmentation-model": "/etc/models/deeplabv3_plus_mobilenet_quantized.tflite", "segmentation-labels": "/etc/labels/deeplabv3_resnet50.json", "classification-model": "/etc/models/inception_v3_quantized.tflite", "classification-labels": "/etc/labels/classification.json" } Copy to clipboard For more information about the fields in the **config-parallel-inference.json** file, see [Config JSON field description](https://docs.qualcomm.com/doc/80-70030-251/topic/run_apps_manually_on_host.html#config-parallel-inference-json-field-description). 4. To start the application, run the following command: gst-ai-parallel-inference Copy to clipboard - To stop the use case, select Ctrl + C. - To display the available help options, run the following command: gst-ai-parallel-inference -h Copy to clipboard - The `GST_DEBUG` environment variable controls the GStreamer debug output. Set the required level to allow logging. For example, to log all warnings, run the following command: > > > export GST_DEBUG=2 > Copy to clipboard **Config JSON field description** The following table describes the fields in **config-parallel-inference.json** file that configure the input source for the sample application: | **Field** | **Values/Description** | | --- | --- | | **Input source** | Use one of the following input source:

  • camera: Primary camera (0) or secondary camera (1)


  • file-path: Directory path to the video file


  • rtsp-ip-port: Address of the RTSP stream in the rtsp://<ip>:<port>/<stream> format


| | **Models and labels** |

  • detection-model: Path to the detection model


  • detection-labels: Path to the detection label


  • pose-model: Path to the pose model


  • pose-labels: Path to the pose labels


  • segmentation-model: Path to the segmentation model


  • segmentation-labels: Path to the segmentation labels


  • classification-model: Path to the classification model


  • classification-labels: Path to the classification labels


| **Known issue** In pose detection, the model detects only one person, even if many people are present in the frame. Note Image classification using the Inception v3 model trains on the ImageNet data set. As a result, the model can’t detect a person because this class isn’t included in the data set. ## Next steps - [Explore sample applications](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-50/example-applications.html) - [Develop an application](https://docs.qualcomm.com/bundle/publicresource/topics/80-79972-1/quick_start.html) Last Published: Jul 20, 2026 [Previous Topic Set up the device](https://docs.qualcomm.com/bundle/publicresource/80-70030-251/topics/set_up_the_device.md) [Next Topic Develop an application](https://docs.qualcomm.com/bundle/publicresource/80-70030-251/topics/develop_application.md) Source: [https://docs.qualcomm.com/doc/80-70030-251/topic/demo_app.html](https://docs.qualcomm.com/doc/80-70030-251/topic/demo_app.html)