View Single Post
Old 3rd May 2013, 00:51   #5  |  Link
poisondeathray
Registered User
 
Join Date: Sep 2007
Posts: 5,346
Quote:
Originally Posted by Sparktank View Post
Those are very interesting results.
Equally aesthetic as the trailer fingerprints on youtube.
That is definitely something worth looking into.

Thanks for the sample and info.


I used a coarser gradations for the "waveform" just for demonstration purposes - it doesn't represent every frame, ie. "wider" time intervals than the youtube example which used finer "gradations" - but you could choose to do it like the youtube version if you wanted to. Also I just simply resized and blurred the "small" frames, I didn't do any average color pallate analysis or anything like that . The plugin pretty much aligns and distributes everything for you




Quote:
Originally Posted by Keiyakusha View Post
this is absolutely possible with imagemagick+avisynth. maybe avisynth is enough but i'm too lazy to try.
Wall of bad english below, care! ^__^

There is multiple ways to do that, and they may look a bit different but one of them I see like so:
lets assume you want to make 1280x720 video, your source video have 3284 frames and you want fingerprint to change each pixel. means you need to prepare 1280 images.
convert video to rgb24, resize it to something small like 64x64 resolution. Actually you want 1x1 resolution but not sure if avisynth can handle that...
Now you need to make 1280 frames out of 3284. can be decimation or maybe blending, I dunno. Decimation probably better to do before resize.
Then output these frame to individual files in some folder. Using batch-script for imagemagick make it process each image by downacaling it to 1x1px (here i'm sure imagemagick can handle it), then scale it again to something like 1x100. Then take all images and append horizontally into one 1280x100 image (there is an option for that).
Now cou can append that image to the bottom of your source video (before that adjust height to what you want with any resizer). Then using masktools and using animated image with pure black and white colors you can make fingerprint reveal itself over time...

Well didn't tried any of this and probably none of this will be done in optimal way but I THINK its quite close.


Yes - I was trying to figure out how you would do this in avisynth too, but my coding is only at a basic level. I would like some guru to come in so I can learn how it could be done in avisynth . I'm thinking some runtime functions, gscript something like that

I think you can use almost the same approach by generating an image sequence and applying the filters (resized, blurred , averaged, whatever) with ImageWriter() and overlaying it stepwise to generate the "strip" . x=0, x=2, x=4 etc... . The image reader would have to read single static images (not an image sequence), or the previous "summary" will change over time

Somthing like
overlay(base, strip, x=clp.framecount+somevariable)

The audio waveform part is simple, it's just a screenshot from audacity and used as an overlay (but since it was grey and blue, I keyed out the grey and made it greyscale and brighter) , it can easily be done in avisynth

I know there is a smarter way to do this as a template with variables (like clip width, height, framecount, fps) instead of "hardcoding" values, this way you can run the same script on different spec videos (dimension , fps) and it will automatically make adjustments, but it's beyond my knowlege


Quote:
Then take all images and append horizontally into one 1280x100 image (there is an option for that).
Yes, thanks for this info about imagemagick, I didn't know it could do it

Code:
    #If you want to append images horizontally, use this command
    convert image1.jpg image2.jpg image3.jpg +append result.jpg
     
    #If you want to append them vertically, change the + to a -
    convert image1.jpg image2.jpg image3.jpg -append result.jpg

Last edited by poisondeathray; 3rd May 2013 at 01:09.
poisondeathray is offline   Reply With Quote