I was really inspired by Walter Murch's interview in the documentary The Cutting Edge - which I recommend you people to watch.

You see that wall in the background? That wall is filled with shots of all the tapes he needs/has spot. The cool thing about that is that you can search through your footage really fast and, if it's timestamped, you can go to that footage real easy. Murch also annotates his shots I think. I t is much much faster than going through all the footage in your NLE even if you use markers for your footage and notes in that markers.
Ok, now I had the same idea of having this, but just with a bunch of thumbnails generated from your tapes - or anime in your case - instead of all printed out on the wall, so you can use Explorer or what ever thumbnail viewer to go through all the scenes really quickly. I talked about it with a friend of mine, Daniel, and he said that he could easily write a an AVS-script for that that creates JPEG-files every x seconds/frames/whatever and he did:
Daniel's post from the Animecon.nl forums -
http://forum.animecon.nl/topic.asp?TOPIC_ID=2225:
On a slightly related note, Douggie and Rellik were discussing during dinner about how there aren't any good thumbnail generators. I promised to make one in AviSynth and here it is.
- Code: Select all
function Thumbnails(clip c, string "dest", int "every", int "col", int "x", float "ar") {
c
dest = default(dest, "")
every = default(every, Round(Sqrt(framecount)))
col = default(col, Max(Round((Log(1.0 * framecount / every) + 1) * Sqrt(2)), 1))
x = default(x, 1280 / col - 1)
ar = default(ar, 1.0 * width / height)
ConvertToRGB().Spline36Resize(x, Round(x / ar)).SelectEvery(every)
ScriptClip("Subtitle(GetTime(current_frame / framerate), text_color=$ffffff, align=2)")
StackFrames(AddBorders(1,1,0,0), BlankClip(), 0, col).AddBorders(0,0,1,1)
ImageWriter(dest, type="png")
}
function StackFrames(clip c, clip thumbs, int i, int col) {
StackFramesHorizontal(c, BlankClip(), i, col)
i < c.framecount - col ? StackVertical(last, StackFrames(c, last, i + col, col)) : last
}
function StackFramesHorizontal(clip c, clip thumbs, int i, int col) {
i < c.framecount ? c.Trim(i, i > 0 ? i : -1) : BlankClip(c, 0)
i % col > 0 ? StackHorizontal(thumbs, last) : last
i % col < col - 1 ? StackFramesHorizontal(c, last, i + 1, col) : last
}
function GetTime(float cur) {
h = String(Int(cur) / 3600)
m = String(Int(cur) / 60 % 60)
s = String(Int(cur) % 60)
ms = String(Int(Frac(cur) * 1000))
return h + ":" + (StrLen(m) < 2 ? "0" : "") + m + ":" + (StrLen(s) < 2 ? "0" : "") + s
\ + "." + (StrLen(ms) < 3 ? "0" : "") + (StrLen(ms) < 2 ? "0" : "") + ms
}
Quick usage guide: Save it as Thumbnails.avsi file in your AviSynth plugin auto-load directory. The arguments dest, evert, col, x, and ar represent, respectively: the destination path, how many frames should be skipped between two thumbnails, how many thumbnails should be displayed horizontally, what horizontal size one thumbnail should have, and the aspect ratio of your video. If an argument is not specified a reasonable default value will be used instead. For example, the following would be a valid way of using the script.
- Code: Select all
AVISource("anamorphic_lossless_source.avi")
Thumbnails("C:\thumbnail", 240, ar=16/9.0)
This will create the file C:\thumbnail000000.png containing thumbnails that are 240 frames apart and have a forced 16/9 aspect ratio. Note that the process is not that fast, partially due to AviSynth being single-threaded and all. Processing a 24 minute long 1080p episode on default settings takes well over 2 minutes on my ridiculously awesome Core i7.
Sorry for wasting all this space here but who knows, it might even be useful to someone.
I never actually got it to work, because it seemed to crash my Premiere, but Rellik did seem to get it working. It might be because of different AviSynth versions (that's the most annoying thing about AVS) though.
So I hope this is helpful for you people who want to spot tapes/sources in a faster way. Of course, I do recommend actually seeing the source footage first, because stills cannot be a substitution for motion, but I think this system is a really good one to remind you of them and browse through them in a faster and more complete way than scrubbing through your video files.
In order to make it better, is there any plugin/code for AVS that can detect scene changes and can be combined in one way or another with the script? Because that would be awesome: no duplicates and no missing shots!
So anybody wants to improve the script with that?
