Giter Club home page Giter Club logo

videowall's Introduction

info-beamer video wall

This example code shows a way to play different fullscreen videos on different devices at the same time. You can use it (for example) to build a video wall consisting of four screens each connected to it's own PI.

Preparing the PIs

You have to repeat this step for each Pi you want to use.

Install Raspbian. Download info-beamer for the pi and extract the tar.gz somewhere. This readme assumes you extracted the tar to /root/info-beamer-pi.

Please follow the instructions in /root/info-beamer-pi/README.txt to make sure your Pi has enough video memory available. You can test info-beamer by running:

$ /root/info-beamer-pi/info-beamer /root/info-beamer-pi/samples/hello

This readme also assumes that this readme and all related files (node.lua, master.py, ...) are in /root/videowall.

Copy the videos(s) you want to display to the directory /root/videowall. Only h264 videos are supported.

Create the file playlist.txt and add one or many lines consisting of the video filenames that should be played. It might look like this:

video1-left.mp4,video1-right.mp4
video2-left.mp4,video2-right.mp4

The first line tells the system that you want to play video1-left.mp4 on the first device and video1-right.mp4 on the second device at the same time.

Videos should match the aspect ratio of each screen. So don't try to play 4:3 videos on a 16:9 screen. They should also have the same length, otherwise the screen showing the shorter video will show the last frame of that video until the other screen(s) complete their video.

You are not limited to only two videos. You can add as many videos in a single row as you have screens/devices available.

Making sure info-beamer starts after booting

Edit /etc/rc.local and add the following line before the existing exit 0 line:

INFOBEAMER_ADDR=0.0.0.0 /root/info-beamer-pi/info-beamer /root/videowall &

This will start info-beamer each time the Pi starts. Make sure you have ssh access configured for the Pi, otherwise the screen will be black after booting since info-beamer will show a black screen while waiting for video playback.

Be careful: This setup assumes that your network is trusted. Any machine in the same network can control which of the provided videos is displayed on each screen.

Starting playback

Once all PIs are configured it's time to start playing videos. One of the PIs (or any other computer) will act as the master server that coordinates playback.

This readme assumes that one of the previously configured PIs acts as the master. Start the master program like this:

cd /root/videowall
python master.py playlist.txt 192.168.1.50 192.168.1.51

This assumes that the PI for the first screen configured uses the IP address 192.168.1.50 and the second one uses 192.168.1.51. Yours probably have other IP addresses, so be sure to change those values. You have to provide the same number of screens as you have videos configured in your playlist.txt file.

If this is running successfully you might want to add those lines to /etc/rc.local as well. It might look like this (be sure to change the IP addresses as well as there number to match your setup) on the master PI now:

INFOBEAMER_ADDR=0.0.0.0 /root/info-beamer-pi/info-beamer /root/videowall &

cd /root/videowall
python master.py playlist.txt 192.168.1.50 192.168.1.51 &

Feedback?

Please get in contact if you successfully use this setup or have any questions.

videowall's People

Contributors

dividuum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

lewisling mshaub

videowall's Issues

Raspberry pi4

Did you try it with rpi4?I want to know if you used 2 hdmi with multiple screens and playing single video.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.