VideoHelp Forum
+ Reply to Thread
Results 1 to 6 of 6
Thread
  1. 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
    Quote Quote  
  2. 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
    Quote Quote  
  3. 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.

    Code:
    vid = WhateverSource()
    prev = Trim(vid, 1, 0) # remove first frame
    sub = Subtract(vid, prev).ColorYUV(cont_y=-244).ColorYUV(cont_y=10000)
    return(sub)
    That would give you a video that's flat grey when there is no motion, and obvious detail when there is motion:

    Name:  sub.jpg
Views: 77
Size:  19.3 KB

    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.
    Quote Quote  
  4. Thanks jagabo, I'll give that a try, looks like it could be really useful!
    Quote Quote  
  5. 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?
    Quote Quote  
  6. 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):

    Code:
    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 12:33.
    Quote Quote  



Similar Threads