my favorite method to compare two (or more) videos, and have overlay for both, uses Avisynth:
a = AVISource("source1.avi") # or DirectShowSource
b = AVISource("source2.avi")
v = StackVertical(a,b)
return v
This could be useful for me. Unfortunately, I'm testing a screwy video: full-resolution, anamorphic anime encoded in Real Video with the drop-dupe prefilter. I got both videos playing using your technique, but they were stretched vertically, so I added two instances of SimpleResize. Seeking and trim() take forever, though, and the mplayerc.exe process often has to be terminated manually.
If I use clips trimmed with rmeditor, then I get warnings that the video goes out of sync at the end of the clip. If the Real Video clips are embedded in Matroska containers, MPC just hangs at the end of playback, with no warning.
My .avs:
LoadPlugin("D:\Program Files\Gordian Knot\SimpleResize.dll")
a = DirectShowSource("G:\testvideo1.rmvb", fps=24)
b = DirectShowSource("G:\testvideo2.rmvb", fps=24)
a = SimpleResize(a, 720, 368)
b = SimpleResize(b, 720, 368)
v = StackVertical(a,b)
v = trim(v, 1000, 1500)
return v
I'd still need some kind of file randomizer to make the test a blind comparison, though. Hmm... I could create a script that wrote the .avs with the "a" and "b" in StackVertical randomly ordered each time. Then it could execute the .avs, and maybe even prompt me for my ratings at the end.
I'm creating way too much work for myself. Anyway, right now I have more urgent tasks, like figuring out who gets my vote on Super Tuesday!