I am picking a video editor and wondered if anyone could recommend one that has a soft of graph of activity. The videos I have to edit are silent and mostly completely still until an event happens, then it returns to being static again. What would be great is if could have a graph at the bottom a bit like the audio graph that some editors give, but showing activity instead (for example calculated using the difference between neighbouring frames). This graph would be low and flat until the event I wish to find and then low and flat afterwards.
Has anyone seen this feature and able to recommend? Within reason cost isn't too much of a concern but free is always nice
Thanks for your help
+ Reply to Thread
Results 1 to 6 of 6
Googling around a bit this could perhaps be achieved in two ways:
- Bitrate graph beneath video
- graph of difference between P-Frame and actual frame
Does anyone know of any editors that can be configured to show these during workflow
You want this to have a quick way of locating the motion sequences? In AviSynth you could subtract the frame from the previous frame leaving a frame that shows only the differences.
vid = WhateverSource() prev = Trim(vid, 1, 0) # remove first frame sub = Subtract(vid, prev).ColorYUV(cont_y=-244).ColorYUV(cont_y=10000) return(sub)
On the top is the original image, On the bottom is the "motion" image. The first ColorYUV() reduces the contrast to eliminate low level noise (fine tune this for your particular video). The second one increases the contrast greatly to make the result very obvious.
Thanks jagabo, I'll give that a try, looks like it could be really useful!
Took a while to work out how to do a script (issue was trying to use a mov file instead of avi). Works nicely. Do you know if there is any way I can then create a text file with each frame number and the number of non-grey pixels?
I've never used it but WriteFile() can create a text file -- the hard part is getting the actual information you need. The frame number is available as the variable current_frame. The number of non-grey pixles is more difficult but there are tools that return the min/max brightness or average brightness (see the runtime functions). The latter is more useful if you generate abs(vid-last):
vid = WhateverSource() next = Trim(vid, 1, 0) # remove first frame sub = Subtract(vid,next) abs = Overlay(sub.ColorYUV(off_y=-126), sub.Invert.ColorYUV(off_y=-129), mode="add")
Last edited by jagabo; 4th Apr 2014 at 13:33.