logo Sign In

VirtualDub and AviSynth for Video Analysis

Author
Time

Hi everyone!  I'm trying to use VirtualDub and AviSynth to calculate some things about a video file I have (I have almost no experience with video editing, etc.).  I don't want it to actually convert anything, just do analysis.  The script can open the video just fine, but I'm wondering about performance.

Currently I'm using the "Run Video Analysis Pass" in VirtualDub to execute my script, but am wondering if there is a faster method to use.  I'm getting about 350fps during this process so that might just be all my machine can handle, but for an entire feature length film it still takes about 10 minutes (give or take).

Is there a way to get VirtualDub to execute a script without performing a "dub" operation?  It occurs to me that this might be a ridiculous question :-) 

Author
Time

10 minutes @ 350fps sounds pretty fast to me.  It might help if you told everybody what exactly it is you are trying to calculate. 

Run Video Analysis Pass isn't do any encoding I'm pretty sure so it sounds like it is already doing what you want it to do lol.

Luke threw twice…maybe.

Author
Time

Thanks for the reply.  It is running pretty fast for the amount of data it's processing (125GB of raw video data as reported by the analyzer, the actual video files are much smaller than that).

For now, I am calculating the average luma for each frame (which is nicely just a single AviSynth command) and I have a python script to average that for the entire video.

The overall purpose of my experiment is that I'm trying to analyze some videos that I re-encoded from DVD for my phone.  I used the same settings in HandBrake (constant quality feature), but the quality is definitely not constant across different files, more like constant within each file.  Some of them look fantastic, but some look horrible.

My current theory is that the quality is not properly being adjusted for the fact that dark scenes don't compress as well all things being equal.  I'm not sure this is the case yet since I don't have enough data points.