Post subject: Comparison videos
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
How hard is a comparison video to make? I ask because I'd like to try making a few for my own edification (I lack both the hardware and software to make publish-worthy movies). It might be nice to have one for every movie on the site with an obsoletion chain (though with some it would be less possible, especially when routes change drastically).
Experienced player (608)
Joined: 10/23/2004
Posts: 706
There were some really amazing comparison videos made for Super Mario World. They re-baselined at each level and had a running tally of the distance each run was ahead with the slower runs having Mario ghosts... it was awesome, but I'm not sure where it was uploaded...
Current Project: - Mario Kart 64
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
I saw those. They were fun to watch. I'm not sure if I prefer those or the 1 to 1 side by side comparisons like Sonikkustar and MUGG do sometimes. I was referring to the side by side ones, though.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3933
Location: Germany
Those 1 to 1 ones on Nicovideo aren't being created by me. That person is using Adobe After Effects (64bit). http://de.nicovideo.jp/search/NEW+OLD+tas Register at nicovideo to see all the videos he made. EDIT: The creator of the comparison video is alpha09jp.
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
The videos on that page show a very strong bias (which is understandable since he's probably doing it for fun). Also After Effects is expensive. Does anyone know the steps he goes through to do that? Might it be possible to do something similar with other software?
ventuz
He/Him
Player (125)
Joined: 10/4/2004
Posts: 940
I think this is something you're looking for? I could be wrong, I don't have AviSynth installed to check it out.
Publisher
Joined: 4/23/2009
Posts: 1283
I have done one compare video with this Avisynth script: http://pastebin.com/eWpn25Bv Example output: http://www.mediafire.com/?1dppudhckxxwth1
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
I'm looking through the Avisynth language and it may be possible to have all the features in those videos with this program, and to have it all display automatically. All the user has to do is enter the frame values. There's two questions I have for things I wasn't able to find. - Is there a way to have the individual videos pause rather than inserting a black frame? - I need a way to slide or translate an image (like a number).
Publisher
Joined: 4/23/2009
Posts: 1283
arkiandruski wrote:
I'm looking through the Avisynth language and it may be possible to have all the features in those videos with this program, and to have it all display automatically. All the user has to do is enter the frame values. There's two questions I have for things I wasn't able to find. - Is there a way to have the individual videos pause rather than inserting a black frame? - I need a way to slide or translate an image (like a number).
The example I posted has the video pausing. I'm not sure on what you mean by translate. Do you mean you want to move a small image from left to right of a screen, for example?
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
Yes, I was thinking of having the numbers showing frame differences move toward the side of the movie that's ahead.
Publisher
Joined: 4/23/2009
Posts: 1283
While I think it is possible, I think you would need to use ScriptClip to achieve it. It be basically changing the subtitle position per frame, which is what SciptClip allows you to do.
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3933
Location: Germany
My idea would have been to show frame winnings of the new movie in green text color and frame losses in red color. Moving subtitles and actually writing this whole script itself is really hard and I haven't come around to trying to do it yet, but I'd really like to see a simplified script that everybody can use. What I'd like to see is some more cosmetic effects as seen in the nicovideo comparison videos.
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
I know it's been a while, but I've been trying to open Aktan's Avisynth script in VirtualDub and I keep on getting a syntax error on line 14, column 0. I can't see what's wrong with the syntax there. Any help?
Site Admin, Skilled player (1251)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
I can suggest to make a simple comparison like mine. http://pastebin.com/YTNyF7bj If it's a NES run - you capture AVI with frame/lag-counter & input display
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Publisher
Joined: 4/23/2009
Posts: 1283
arkiandruski wrote:
I know it's been a while, but I've been trying to open Aktan's Avisynth script in VirtualDub and I keep on getting a syntax error on line 14, column 0. I can't see what's wrong with the syntax there. Any help?
What is the exact message, and what version of Avisynth are you using? Edit: Also post your script, tho I would guess it is the same as mine...
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
I did alter it slightly in order to be for two videos instead of three. I also tried to write a function which would keep track of frames saved (this is what I wanted to really test). Programming's not my strong point, though. However, I would like to get a script that does these automatically so we can provide more comparison videos for those who want to see. The error message is "Avisynth open failure: "Script error:syntax error "(C:\Users\filepath.avs, line 14 column 0)" Here's a copy of my template:
function formatTime(int ms) { s = ms / 1000 ms = ms % 1000 m = s / 60 s = s % 60 h = m / 60 m = m % 60 return String(m,"%02.0f") + ":" + String(s,"%02.0f") + "." + String(ms,"%03.0f") } function addBlankClip(clip a, clip b) { max = Max(a.FrameCount, b.FrameCount,) result = (a.FrameCount != max) ? (a + BlankClip(a, length=max-a.FrameCount)).FreezeFrame(a.FrameCount, max - 1, a.FrameCount - 1) : a return result } function showFrameDiff (clip a, clip b){ frameGain = (a.FrameCount - b.FrameCount) FrameDiff = (FrameDiff + frameGain) return String(FrameDiff) } a = AVISource("old movie").AddBorders(2,20,2,20).Subtitle("authors", align=2, text_color=$00FFFFFF) b = AVISource("new movie").AddBorders(2,20,2,20).Subtitle("authors", align=2, text_color=$00FFFFFF) c = a.ScriptClip("""Subtitle("Frame: " + String(current_frame) + "\nTime: " + formatTime(Round(float(current_frame * 1000) * float(a.FrameRateDenominator) / float(a.FrameRateNumerator))), text_color=$00FFFFFF, lsp=1, size=10.0)""") d = b.ScriptClip("""Subtitle("Frame: " + String(current_frame) + "\nTime: " + formatTime(Round(float(current_frame * 1000) * float(b.FrameRateDenominator) / float(b.FrameRateNumerator))), text_color=$00FFFFFF, lsp=1, size=10.0)""") Subtitle ("Frames Gained" \nshowFrameDiff, text_color=$00FFFFFF, y=2, align=2, size=15) FrameDiff = 0 e = c.trim(first frame, last frame) f = d.trim(first frame, last frame) g = addBlankClip(e, f) h = addBlankClip(f, e) showFrameDiff (e, f) m = StackHorizontal(e, f) n = MixAudio(e, f, 1.0, 0.0) last = AudioDub(m, n) trim(0, 75009) ConvertToYV24(matrix="PC.601", chromaresample="point") ConvertToYV12(matrix="PC.601", chromaresample="lanczos4") return last
I'm still learning the language, but the line that's the trouble is the one that says if clip a isn't the longest add a freezeframe to make up the difference.
sgrunt
He/Him
Emulator Coder, Former player
Joined: 10/28/2007
Posts: 1360
Location: The dark horror in the back of your mind
There's an extra , in the lime immediately above that one.
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
good catch. That's not what was causing the syntax error, though. I had that fixed in the AVS I used.
Publisher
Joined: 4/23/2009
Posts: 1283
you are missing a ) here
a.FrameCount - 1) : a
should be:
a.FrameCount - 1)) : a
Edit: nevermind that's not it.
Publisher
Joined: 4/23/2009
Posts: 1283
What version of avisynth Edit: I would add lines one by one. Make a dummy clip like say BlankClip. Add your first function. See if it loads. Add the second function. See if it loads. Etc etc.
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
The version is 2.5. The site says that was the latest stable one. I also didn't get any extras.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Put "Version" into a new .avs file to get the exact version number.
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
AviSynth 2.58
Site Admin, Skilled player (1251)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Reviewer, Active player (287)
Joined: 12/14/2006
Posts: 717
Thanks. The version change fixed the problem. I've made a few changes based off the errors that I'm getting, but now I'm getting a new error message that stumps me.(I'm trying to learn the logic of the program. It seems that variables don't persist outside of functions here. Am I correct?) "Avisynth open failure: "Script error:Invalid arguments to function "showFrameDiff" "(C:\Users\filepath.avs, line 61)" http://pastebin.com/fRSHJxqx If anyone can find a more elegant solution, please let me know. What I'm trying to do is write a function that keeps track of frames saved, so all the user of the script has to do is input frame numbers. I'm almost definitely not the best person to do this, but at least I'm willing to try, right?