Skip to main content

Play videos side-by-side

Project description

GridPlayer

PyPI version Github All Releases Crowdin

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4

About

Simple VLC-based media player that can play multiple videos at the same time. You can play as many videos as you like, the only limit is your hardware. It supports all video formats that VLC supports (which is all of them). You can save your playlist retaining information about the position, sound volume, loops, aspect ratio, etc.

Features

  • Cross-platform (Linux, Mac, and Windows)
  • Support for any video and audio format (VLC)
  • Support for (almost) any streaming URLs (streamlink + yt-dlp)
  • Hardware & software video decoding
  • Control video aspect, playback speed, zoom
  • Set loop fragments with frame percision
  • Configurable grid layout
  • Easy swap videos with drag-n-drop
  • Playlist retains settings for each video

Translation

GridPlayer now supports internationalization! Anyone with a handful of free time and desire to support this project is welcome to contribute. No coding skills or special software required, all dialogs are well documented and there are not many strings to translate.

Huge thanks to every contributor!

Installation

Windows

Download Windows Installer Download Windows Portable

Via scoop:

$ scoop install gridplayer

Compatible with Windows 7, 8, 10, 11.

Linux

Get it from the Flathub Get it from the Snap Store Download AppImage

For better system integration install via Flathub.

Note on AppImage

The AppImage was built using Ubuntu Focal Fossa libraries, so compatibility is Ubuntu 20+.

You may need to set execute permissions on AppImage file in order to run it:

$ chmod +x GridPlayer-0.5.5-x86_64.AppImage

MacOS

Download DMG

DMG image is not signed and targets Apple Silicon (arm64). You will have to add an exception to run this app.

If you get "GridPlayer is damaged and can't be opened" error, run this command in the Terminal app:

$ sudo xattr -rd com.apple.quarantine /Applications/GridPlayer.app

Install with UV

$ uv tool install gridplayer

Python 3.10 or later required.

This type of installation will also require VLC installed (Windows & Mac) or a vlc package (Linux) present in your system. Please refer to VLC official page for instructions on how to install it.

Some distros (e.g. Ubuntu) might also require libxcb-xinerama0 package.

From source

$ uv tool install git+https://github.com/vzhd1701/gridplayer.git

The same notes about the Python version and external packages from above apply here.

Video Decoder settings

GridPlayer supports two video output modes:

  • Hardware (default) mode uses available GPU to render video. This mode offers high performance and is a recommended mode.
  • Software mode is entirely independent of GPU and only uses the CPU to render video. This mode may cause a high CPU load with high-resolution videos.

Due to libvlc software library limitations, video decoding is split into parallel processes. You can control how many videos are handled by a single decoder process using the "Videos per process" setting. Setting this option too high may cause a high CPU load and application freeze. The optimal value is 4 videos per process.

There is also "Hardware SP" mode. It handles video decoding within the same process in which GridPlayer runs. It is not recommended to use with many videos (>4-6) because it may cause high CPU load and application freeze.

Due to OS inter-process restrictions, "Hardware SP" is the only available hardware mode in macOS.

Known issues

Linux (Snap): Error when opening a file from the mounted disk

You need to allow GridPlayer snap to access removable storage devices via Snap Store or by running:

$ sudo snap connect gridplayer:removable-media

Linux (Snap): mounted drives are not visible in file selection dialog

You will also see following error if you run GridPlayer from terminal:

GLib-GIO-WARNING **: Error creating IO channel for /proc/self/mountinfo: Permission denied (g-file-error-quark, 2)

To fix this, you need to allow GridPlayer snap to access system mount information and disk quotas via Snap Store or by running:

$ sudo snap connect gridplayer:mount-observe

Linux: black screen issue when using hardware decoder

Switch on "Opaque overlay (fix black screen)" checkbox in settings.

Depending on the window manager, the overlay might be a bit glitchy with the hardware decoder. Enabling compositor might help.

Geting help

If you found a bug or have a feature request, please open a new issue.

If you have a question about the program or have difficulty using it, you are welcome to the discussions page. You can also mail me directly, I'm always happy to help.

Attributions

This software was build using

Python packages

Graphics

  • Hack Font by Source Foundry
    • Licensed under MIT License
  • Basic Icons by Icongeek26
    • Licensed under Flaticon License
  • Suru Icons by Sam Hewitt
    • Licensed under Creative Commons Attribution-Share Alike 4.0
  • Clean App Download Buttons by Tony Thomas
    • Licensed under MediaLoot License
  • Flag Icons by Panayiotis Lipiridis
    • Licensed under MIT License

Translations

logo
VenusGirl

886 words
ko
logo
Sylvain LOUIS
(LOUIS_Sylvain)

886 words
fr
logo
GBS ~ TECH
(Gabriel-BS1)

886 words
pt-BR
logo
Göran
(Granberg)

875 words
sv-SE
logo
Roy Hendum
(royhendum)

875 words
no
logo
z Z
(zxas)

851 words
zh-TW
logo
Davide V.
(davidev1)

752 words
it
logo
Heimen Stoffels
(Vistaus)

751 words
nl
logo
七篠孝志
(japanese.john.doe.774)

751 words
ja
logo
DominikPott

751 words
de
logo
Azoaz6001

751 words
ar
logo
Yagang Wang
(wyg945)

751 words
zh-CN
logo
Kryštof Baksa
(Golbinex)

674 words
cs
logo
Sergio Varela
(IngrownMink4)

652 words
es-ES
logo
rafal132
(fifi132)

598 words
pl
logo
a2942

496 words
zh-CN
logo
LiberiFatali

456 words
vi
logo
samu112

438 words
hu
logo
asolis2020

266 words
es-ES
logo
SolarCTP

164 words
it
logo
Sebastian Jasiński
(PrinceNorris)

163 words
pl
logo
Manuel
(reiss404)

133 words
de
logo
Armando Gomes
(aportuguesecoder)

121 words
pt-PT
logo
Akronos

112 words
cs
logo
Владимир Ларин
(WackyFox)

108 words
he

License

This software is licensed under the terms of the GNU General Public License version 3 (GPLv3). Full text of the license is available in the LICENSE file and online.

Project details


Download files

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

Source Distribution

gridplayer-0.5.5.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

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

gridplayer-0.5.5-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file gridplayer-0.5.5.tar.gz.

File metadata

  • Download URL: gridplayer-0.5.5.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gridplayer-0.5.5.tar.gz
Algorithm Hash digest
SHA256 599cedee456b9da4bdce1a46a5fea99094c9418d44ee37e54c03ca707c7fbe45
MD5 a4b860ec0dd6a204dcf00e17fe5b90e2
BLAKE2b-256 73e28820fbbecfbd9f002a46bab5b4b8927be0a964061107239d8eef69eb2a49

See more details on using hashes here.

File details

Details for the file gridplayer-0.5.5-py3-none-any.whl.

File metadata

  • Download URL: gridplayer-0.5.5-py3-none-any.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gridplayer-0.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 63dd818bc4d939d045a5af9bc729613ecddcd0e8892c67cd9dca5d1be522793c
MD5 c431e310e192c6d7d1dec668bb7350ec
BLAKE2b-256 4402942e3f08ddf26113f3bc2bfc4976cc7797d8eac65b53700b4120d6c3420b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page