Skip to main content

Videowall

This is a Qt based video wall player. It can play an arbitrary number of movies at the same time in a user customizable configuration.

Playback features include:

  • Select loop, step forward, or random videos from a library
  • Customize volume and playback speed for each video
  • Play, Pause, Mute the whole wall
  • Keyboard control for a primary video
  • Save wall layouts and automatic recovery of last layout
  • Lock the layout to prevent accidental changes during playback
  • Lots of options for customizing operation

Requirements

  • Python 3.9+
  • PySide6

Use

Click a player to show the control UI.

Along the top is the list of movies found in the movie folder. You can type to filter the list. If you type multiple words separated by whitespace, it will find items with all words anywhere in the name.

Buttons:

  • Close the player
  • | Split the player row horizontally
  • Split the player column vertically
  • Swap two players
  • Toggle scaling to fit inside or outside the player area
  • At the end, loop the current video
  • At the end, play the next video in the list
  • ? At the end, play a random video from the list
  • This player is controlled by the keyboard/menu playback options
  • Jog this player backward
  • Jog this player forward
  • Perform the end operation immediately

The top left slider controls playback speed (0% - 200%).

The bottom left slider controls the volume (0% - 100%).

The bottom slider will keep up with your position in the movie and allow you to scrub to any other position. The time on the left is the elapsed time, and the on the right is the remaining or total time (see below for option to configure which).

Configuration

Currently, you must create a configuration file manually. That file must be called videowall_settings.json in your home folder. The file content is a JSON object with zero or more of the following values:

Option Type Default Use
always_on_top bool True The player window will always float above normal windows, even if the application is not active.
auto_update_layout bool True When enabled, the open layout will be updated with any changes during the playback session when the layout is changed or the window is closed.
default_volume float 1.0 (Range 0.0 - 1.0) The volume to use when making a new player.
hide_mouse_delay float 3.0 Seconds to wait before hiding the mouse pointer while playing
jog_interval int 10000 The number of milliseconds to move with the "jog" operation.
layout_folder Path The path where the layouts are stored
lock_titlebar bool False When False, locking the layout hides the window titlebar for a cleaner look. When True, the titlebar remains visible while locked. Unlocking always restores the titlebar.
movie_folder Path The path where the movies are stored
open_last_on_startup bool True When enabled, the last layout is loaded at startup
play_audio bool True Disable to completely disable all audio playback and control
pre_roll int 2000 The number of milliseconds to rewind when loading a layout
remaining_time bool True When enabled, show remaining time instead of total time
restore_window_state bool True When enabled, the window state is restored when loading a layout
sparse_spec bool True When enabled, the spec file will only include settings not at the current default. When disabled, all playback settings are always saved.
splitter_handle_width int 5 Width in pixels of the dividers between players. Set to 0 for no gap. When the layout is locked this is overridden to 0 automatically.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

videowall-1.3.0.tar.gz (39.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

videowall-1.3.0-py3-none-any.whl (36.1 kB view details)

Uploaded Python 3

File details

Details for the file videowall-1.3.0.tar.gz.

File metadata

  • Download URL: videowall-1.3.0.tar.gz
  • Upload date:
  • Size: 39.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for videowall-1.3.0.tar.gz
Algorithm Hash digest
SHA256 1d697da3075947ddb61b6bfc0fb0b0a0fbbf6ae9c1605a814c08984dde007032
MD5 ec1352e7de2299cd13973b4d3cfd7d46
BLAKE2b-256 6eae846771a91c9befa54f623d2c61393604bc97c02e75e5b47596d430c4d2f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for videowall-1.3.0.tar.gz:

Publisher: release.yml on uberware/videowall

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file videowall-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: videowall-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for videowall-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1c38529b54180df78033281e4e14e6eb95412292c555e423ca8bdd26209724e
MD5 cf34fb7be93cdc1a17d4356cb0536646
BLAKE2b-256 6e807935745bc79d41bb341482a8c49b8970054414b2af0efb24e65b997dac24

See more details on using hashes here.

Provenance

The following attestation bundles were made for videowall-1.3.0-py3-none-any.whl:

Publisher: release.yml on uberware/videowall

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page