# 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-80021-50/topic/video-wall-using-python.html#section-s22-qsf-4bc).
## Run the 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-80021-50/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
| 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-80021-50/topic/v4l2h264dec.html) | Decodes the H.264 video streams. |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-80021-50/topic/qtivcomposer.html) | Composes the decoded streams and sends them over the display. |
| [Waylandsink](https://docs.qualcomm.com/doc/80-80021-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-80021-50/topic/video-wall-using-python.html)
Last Published: Mar 26, 2026
[Previous Topic
Run sample applications for video and audio](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/audio-sample-applications.md) [Next Topic
Smart codec](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/smart-codec.md)