# Video wall
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-80022-55/topic/video-wall-using-python.html#section-s22-qsf-4bc).
**Figure : gst-concurrent-videoplay-composition pipeline with 4 streams**
## 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 complete the [Prerequisites](https://docs.qualcomm.com/doc/80-80022-55/topic/mm_sample_apps_prerequisites.html).
2. Input at least one `MP4 AVC (H.264)` video file on the target device.
3. In the terminal of the target device, use the following command to run the use case:
gst-concurrent-videoplay-composition -c -i .mp4 -i .mp4
Copy 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:
>
> ``` {#codeblock_mh1_vl3_y1c}
> gst-concurrent-videoplay-composition -c 2 -i .mp4 -i .mp4
> ```
>
> If one video is provided as input, the same file is played concurrently.
>
> - Concurrent playback of four sessions:
>
> ``` {#codeblock_wfn_wl3_y1c}
> gst-concurrent-videoplay-composition -c 4 -i .mp4 -i .mp4 -i .mp4 -i .mp4
> ```
> Copy to clipboard
4. To stop the use case, use **CTRL + C**.
5. 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 --help
Copy 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.py 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-80022-50/topic/v4l2h264dec.html) | Decodes the H.264 video streams. |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-80022-50/topic/qtivcomposer.html) | Composes the decoded streams and sends them over the display. |
| [waylandsink](https://docs.qualcomm.com/doc/80-80022-50/topic/waylandsink.html) | Displays the composed video streams on Wayland display. |
## Known issue
Video playback closes or freezes. 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-80022-55/topic/video-wall-using-python.html)
Last Published: May 17, 2026
[Previous Topic
Run sample applications for video and audio](https://docs.qualcomm.com/bundle/publicresource/80-80022-55/topics/audio-sample-applications.md) [Next Topic
Smart codec](https://docs.qualcomm.com/bundle/publicresource/80-80022-55/topics/smart-codec.md)