How to play multiple videos side-by-side synchronized?

I've got 3 videos, all 3 have the same time, same amount of frames, and they only differ in terms of encoding quality.

Now I need them to run side-by-side in synchronized fashion for evaluation purposes. Meaning when I press "play" BOTH! videos should start. Analogically for stop, forward, backward.

Anyone know any player capable of doing that? By that I mean playing more than 1 video side-by-side...

Platform: Win7


Solution 1:

VLC on Windows (1.1.10 or later):

  • Tools → Preferences
  • Show Settings → All
  • Click Advanced (Click Playlist for VLC 2.1.5)
  • Uncheck "Allow only one running instance"
  • Uncheck "Use only one instance when started from file manager"

VLC on OS X does not provide the same set of options. You can however run multiple instances from the Terminal with open -a VLC.

Solution 2:

If anyone is still interested in this the current version of VLC is able to do this very well without any kind of scripting or add-on. As far as I know however you can only play two files synchronously, not 3.

  1. To accomplish this simply open VLC and select Media>Open Multiple Files.
  2. Inside the multiple file windows select add to add the first file.
  3. After this click on the, "Show more options," checkbox followed by the, "Play another media synchronously," checkbox at the bottom of the window.
  4. Select browse next to, "Extra media," to add the second file.
  5. Hit play and the two media files will play simultaneously with a single control window.

Solution 3:

You can do this with mpv if you don't mind using the command-line:

3 videos side-by-side (stacked horizontally)

enter image description here

mpv --lavfi-complex="[vid1][vid2][vid3]hstack=inputs=3[vo];[aid1][aid2][aid3]amix=inputs=3[ao]" input1.mkv --external-files="input2.mkv;input3.mkv"

2 videos

mpv --lavfi-complex="[vid1][vid2]hstack[vo];[aid1][aid2]amix[ao]" input1.mkv --external-file=input2.mkv

Notes

  • In Windows use ; to separate each file name in --external-files (as shown in the 3 videos example). In Linux and macOS use :. Alternatively, use two instances of --external-file instead such as: --external-file=input2.mkv --external-file=input3.mkv.

  • Files must all be the same height. If they are not then add the scale, pad, and/or crop filters. See the mpv documentation and FFmpeg Filters for more info.

Solution 4:

Bino is a cross-platform media player commonly recommended for stereoscopic file playback. Among other features, it supports synchronized playback of multiple streams.

The interface may seem a bit primitive or confusing at first, but all you need to do is

  1. Drag your two video files into Bino
  2. Select "Separate streams, left first" input option and "Left/right" output option

Voilà, you got synchronized playback. The kind where a single set of playback controls is used for all streams so you wouldn't have to "Invest in some finger weights and train yourself to click very quickly" as @ta.speot.is suggests.

As a bonus, it supports rendering anaglyph 3D.