I have 4 HDMI TVs, and I want to play 4 different individual videos (or even 4 different x-y segments/tiles of a single video) on these 4 HDMI TVs, in perfect synchronous with each other.

I searched a lot on the net, and found the following as possible solutions:

  1. PiWall (http://www.piwall.co.uk/)
  2. omxplayer-sync (https://github.com/turingmachine/omxplayer-sync)
  3. omxplayer-sync-2 (https://github.com/pukster/omxplayer-sync-2)
  4. RTSP/UDP + omxplayer (https://www.google.com/?gws_rd=ssl#q=omxplayer+rtsp)
  5. Remotepi (https://github.com/subogero/remotepi)

Has anyone tried out these solutions before?

Which one is more reliable, has the least delay between videos, with maximum synchrony?

Is there any other solution besides these ones?


Actually, in addition to synchronize the video playback in the slave RPis, I would like the master board to send some other optional commands, like play, pause, next, previous, halt, ... to the slaves. So I think command-based methods would be better solutions.

For example, at start up, the 4 slave boards boot into an interrupt-based ready-to-receive-commands state, and the master board boots into a sending-commands-on-demand state. The boards could be connected via GPIOs or even ethernet switch, and the commands could be sent/received via GPIO read/write or SSH/UDP/RTSP.

How does this scenario looks like!!? Is that reliable?

I just don't know how to implement such methods. :D

Would you please help on this?

Thanks for your time and support :)

No one to help? The bounty is expiring !!

  • any suggestions??
    – Omid1989
    Jun 19, 2015 at 11:15
  • No one to help? The bounty is expiring !!
    – Omid1989
    Jun 27, 2015 at 11:35

1 Answer 1


+1 for Piwall. In addition to the displays themselves, you need one pi per screen, an SD for each pi, an Ethernet switch big enough to accept all of the pi's + cables, powers supplies, etc. You'll also need another pi or PC to act as a master and run 'the whole shebang'.

But the software is GPL'ed and available on their page here- (including source code which is nice...)


[edit] to address your follow-up- Since PiWall uses TCP/IP and has a master/slave topology, you should be able to use TCP to control your displays and not have to use GPIO at all. However you may have to dive into the source if the exact features you want aren't already present...[/edit]

  • Thanks @alphacharlie for your answer. Actually, I just realized that the PiWall is not a good solution. Because it splits a 1920x1080 video into tiles, so if we have 4 screens, each screen will have 960x540 resolution. And this is not acceptable when you use Full HD TVs. But if you know any way to use UDP/RTSP method, something similar to PiWall, I look forward to hear.
    – Omid1989
    Jun 24, 2015 at 11:51
  • Actually if you just want to sync different videos over the network, mplayer will do that from the command line using the --udp-master and --udp-slave flags. See [link]mplayerhq.hu/DOCS/HTML/en/networksync.html Jun 24, 2015 at 19:04
  • Thanks again @alphacharlie for your suggestion. But I think hardware GPU acceleration is only possible with omxplayer. So mplayer might not be so useful. Right ?
    – Omid1989
    Jun 24, 2015 at 20:05
  • 1
    That's true. You might be stuck trying omxplayer-sync. (Also if you are doing a ton of different formats you might need to buy the mpeg-2/VC1 codecs for each pi...) Jun 24, 2015 at 20:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.