A video/image player with fine grained layout options
This package allows you to play FullHD content across any number of screens. You can precisely control the screen layout of each screen and even adjust for latency differences between screens. Additionally you can also use this package to place content on only a single screen. Some LED walls require this as they show only a small area cropped from a FullHD output.
Multiple devices running the same setup based on this package will be in sync, so you can also use this as a synced video/image player for fullscreen content.
Setting the content area
The first thing you have to decide the size of your content in pixels. If you have 16:9 screens like this:
You content should be in 16:27 (where 27 = 9x3) aspect ratio. The example size of your content might therefore be 960x1620. Set this as your content area width and height.
If you have content of various sizes, you can also set the content area width/height to some imaginary value and activate "aspect adjust content". This will then scale your content into the content area size while preserving the aspect ratio.
Setting up screens
First, add the screen you want to use to your account. Then assign them to your video wall setup.
Finally configure each of your screens by adding them to the setup configuration. Click on "Add Screen" for that.
For each screen you can specify which area of the content area specified above is covered by each of your screens.
In the example above, the top screen would require the following configuration values:
x = 0, y = 0, width = 960, height = 540
These values instruct the video wall to show the top third of your content on the top screen. Proceed to set the other screens accordingly.
You can freely choose x, y, width and height values. As such you can have overlapping screens or compensate for your screen's bezel.
The rotation value allows you rotate your display around the chosen screen area. In the example above, you'd probably only want to use 0 or 180 degree rotation. If you have portrait mode displays within your wall, you want the width and height values to reflect their 9:16 aspect ratio.
Finally the latency values allows you to move the sync point of your screen in relation to each other. That way you can adjust for minor differences in the hardware latency of your displays.
Set a playlist
Click on the node labeled Playlist Configuration on the left side of the configuration screen.
You can add images and video assets to your playlist. If you make changes to a playlist and click on Save, your devices will go black for a short moment until they are all back in sync. Therefore it is recommended to make all changes to a playlist and save only once.
You can have a fade effect between content items. Use the
Effect dropdown for that.
Videos cause a 0.5 second gap before they start by default. Within the 0.5 seconds, info-beamer preloads the video.
You can also select seamless playback. In that case info-beamer has to load the next video while the previous one is still playing. This puts a lot of work on the Pi and might not work in all cases: The previous video might slow down or skip a few frames. It's recommended that you test your content to see if seamless mode works correct.
Right now there's no visual way to set and configure your screens. Instead you have to manually enter coordinates.
Usually that's not a problem and only has to be done once. If you need help, feel free to contact support.
Added HEVC video support.
Added support for the Pi4.
Added seamless video playback
This is the first public release. While it works, there might be problems. If you find anything, please open an issue on github.
Want to run Flexible Grid Video Wall on your Raspberry Pi?
This package is ready to run on your Raspberry Pi using info-beamer.com hosted. Easily manage unlimited number of Raspberry Pi devices and centrally configure and run visualizations like this on them. info-beamer.com is a prepaid service. You only pay for the resources you are using. No long term commitment, no hidden fees. Learn more...
Compatible devicespi-0 pi-1 pi-2 pi-3 pi-4 pi-cm1 pi-cm3
Offline supportMaybe This package might work offline: Package provides no offline support information. Also check the information above.
Source code for this packagehttps://github.com/info-beamer/package-flex-wall shows you the full source code of this package so you can freely modify it if you want.
Copyright (c) 2017 Florian Wesch <firstname.lastname@example.org> All rights reserved. Show full license information
Copyright (c) 2017 Florian Wesch <email@example.com> All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. This project includes third party work: silkscreen.ttf SIL Open Font License (OFL) http://kottke.org/plus/type/silkscreen/ node.png CCBY, created by bolapoojari https://thenounproject.com/browse/?i=1374326 screens/node.png CCBY, created by Atif Arshad https://thenounproject.com/browse/?i=1261164