# Video wall
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/gst-concurrent-videoplay-composition.html](https://docs.qualcomm.com/doc/80-70020-50/topic/gst-concurrent-videoplay-composition.html)
The **gst-concurrent-videoplay-composition** application supports concurrent video
playback for MP4 AVC (H.264) videos and performs composition on a video wall display.
In the concurrent video playback and composition pipeline, four decode and composition
pipelines run concurrently. For more information about the plugins used in this
pipeline, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70020-50/topic/gst-concurrent-videoplay-composition.html#gst-concurrent-videoplay-composition__section_s22_qsf_4bc).
Figure : gst-concurrent-videoplay-composition pipeline with 4 streams
## Prerequisites
- [Get started with the Qualcomm IM SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-51/install-sdk.html)
for your Qualcomm Linux 1.5 or Ubuntu Server.
- Activate SSH on your Qualcomm Linux or Ubuntu to sign in with SSH and connect to
the target device. For instructions see:
- [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/how_to.html#use-ssh) for Qualcomm
Linux
- [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-90441-1/Use_Ubuntu_on_RB3_Gen2_3.html#sign-in-to-the-rb3-gen-2-console-using-ssh) for Ubuntu
Server
Note: If SSH is already set up and Wi-Fi is
connected, skip this step.
- Use the HDMI port to connect the display to the device. For instructions, see
[Set up HDMI display](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-18/samples.html).
- Sign in to the target device using SSH.
- In the terminal of the target device, run the following commands from the SSH
shell of the target device to activate the display on the host computer:
- For
Linux:
export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1Copy to clipboard
- For Ubuntu Server:
export XDG_RUNTIME_DIR=/run/user/$(id -u ubuntu)/ && export WAYLAND_DISPLAY=wayland-1 Copy to clipboard
- Connect the speaker to activate the audio on the target device. For
instructions, see [Set up audio hardware](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-16/enable-audio.html).
If you face
issues in recording the audio, run the following command in the terminal of
the target
device:
pactl set-default-source pal_source_speaker_micCopy to clipboard
- If you face issues with the camera or display, see [Camera troubleshooting](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-17/troubleshooting.html) and [Display troubleshooting](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-18/debug.html).
## Run the application
The following table lists the use cases that are supported through the
gst-concurrent-videoplay-composition application:| Use case | Description |
| --- | --- |
| Video conferencing |
Simultaneously decodes the video streams of several participants.
Useful in a multi-party video conference scenario where the application manages several video streams.
|
| Surveillance systems | Concurrently decodes video feeds from two separate cameras. |
| Digital signage | Allows simultaneous changes or updates to centrally managed information that's electronically displayed across several locations. |
To run the use cases, do the following:
1. Ensure that you input at least one `MP4 AVC (H.264)` video file
on the target device.
2. In the terminal of the target device, use the following command to run the use
case:
gst-concurrent-videoplay-composition -c -i .mp4 -i .mp4Copy to clipboard
The following table provides a description of the command-line
parameters: | Command-line parameter | Description |
| --- | --- |
| `-c` |
Number of streams to decode for composition.
Supported values are 2, 4, 8, and 16.
|
| `-i` | Specifies the absolute path to the input video file |
For example, use the following commands to run the concurrent playback
use cases:
- Concurrent playback of two
sessions:
gst-concurrent-videoplay-composition -c 2 -i .mp4 -i .mp4Copy to clipboard
If
one video is provided as input, the same file is played
concurrently.
- Concurrent playback of four
sessions:
gst-concurrent-videoplay-composition -c 4 -i .mp4 -i .mp4 -i .mp4 -i .mp4Copy to clipboard
3. To stop the use case, use CTRL +
C.
4. In the terminal of the target device, run the following command in the SSH shell
to display the available help
options:
gst-concurrent-videoplay-composition --helpCopy to clipboard
## Expected output
The individual composed streams are tiled together to display as a unified
stream.
Figure : Expected output for gst-concurrent-videoplay-composition application

## Pipeline flow
The following table lists the plugins used to run the video wall
pipeline:| Plugin | Description |
| --- | --- |
| filesrc | Reads the video data. |
| qtdemux | Demultiplexes the video data. |
| h264parse | Parses the H.264 video streams. |
| [v4l2h264dec](https://docs.qualcomm.com/doc/80-70020-50/topic/v4l2h264dec.html) | Decodes the H.264 video streams. |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70020-50/topic/qtivcomposer.html) | Composes the decoded streams and sends them over the display. |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70020-50/topic/waylandsink.html) | Displays the composed video streams on Wayland display. |
## Known issue
Video playback is closing or freezing. About an hour later, it continues running with
16 H.264 720p concurrent video playback sessions.
## Related information
[Concurrent video playback (video wall) using Python](https://docs.qualcomm.com/doc/80-70020-50/topic/video-wall-using-python.html)
**Parent Topic:** [Run sample applications for video and audio](https://docs.qualcomm.com/doc/80-70020-50/topic/audio-sample-applications.html)
Last Published: Jan 30, 2026
[Previous Topic
Run sample applications for video and audio](https://docs.qualcomm.com/bundle/publicresource/80-70020-50/topics/audio-sample-applications.md) [Next Topic
Smart codec](https://docs.qualcomm.com/bundle/publicresource/80-70020-50/topics/smart-codec.md)