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.
- To accomplish this simply open VLC and select Media>Open Multiple Files.
- Inside the multiple file windows select add to add the first file.
- After this click on the, "Show more options," checkbox followed by the, "Play another media synchronously," checkbox at the bottom of the window.
- Select browse next to, "Extra media," to add the second file.
- 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)
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
- Drag your two video files into Bino
- 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.