Play videos side-by-side
Project description
Screenshots
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
Compatible with Windows 7, 8, 10, 11.
Linux
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.0-x86_64.AppImage
MacOS
DMG image is not signed. You will have to add an exception to run this app.
- How to open an app that hasn’t been notarized or is from an unidentified developer
- Open a Mac app from an unidentified developer
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
PIP
$ pip install -U gridplayer
Python 3.8 or later required.
This type of installation will also require a vlc
package 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
This project uses poetry for dependency management and packaging. You will have to install it first. See poetry official documentation for instructions.
$ git clone https://github.com/vzhd1701/gridplayer.git
$ cd gridplayer/
$ poetry install --no-dev
$ poetry run gridplayer
The same notes about the Python version and external packages from PIP installation 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 by Python Software Foundation
- Licensed under Python Software Foundation License
- Qt by Qt Project
- Licensed under GPL 2.0, GPL 3.0, and LGPL 3.0
- VLC by VideoLAN
- Licensed under GPL 2.0 or later
Python packages
- PyQt by Riverbank Computing
- Licensed under Riverbank Commercial License and GPL v3
- python-vlc by Olivier Aubert
- Licensed under GPL 2.0 and LGPL 2.1
- pydantic by Samuel Colvin
- Licensed under MIT License
- streamlink by Christopher Rosell, Streamlink Team
- Licensed under BSD-2-Clause License
- yt-dlp by Contributors
- Licensed under Unlicense License
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
Arabic
German
Spanish
French
Hungarian
Italian
Japanese
Korean
Dutch
Polish
Portuguese, Brazilian
Chinese Simplified
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gridplayer-0.5.0.tar.gz
.
File metadata
- Download URL: gridplayer-0.5.0.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.8.16 Linux/5.15.0-1037-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81700291874e8d57984019ad3b2b0f6e30bd0487b900f025f6ac40ed6f6b75e1 |
|
MD5 | 358770460d96582047a48e79b808def0 |
|
BLAKE2b-256 | 74af86bd7e50c4e49947d619d4948bf08b722a9d67f2f671bab172f3b3cf8eba |
File details
Details for the file gridplayer-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: gridplayer-0.5.0-py3-none-any.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.8.16 Linux/5.15.0-1037-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4125c8c79cb9408ae7e7483507fc5ba013005ceea7cc6c448ef762f64ff278ce |
|
MD5 | 024ce52b5f084305710d1d62ed509c54 |
|
BLAKE2b-256 | 6458aa2c63adcf044df02fb2695785053ddff3124bc86bf915255ebbde444299 |