VideoHelp Forum
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 31
Thread
  1. Member
    Join Date: Mar 2010
    Location: North America
    Search Comp PM
    I have a 22 minute video that I'd like to speed up so that it's about a minute or two in length. The two video editing programs I've got are Sony Vegas Movie Studio Platinum 9.0 and VirtualDub. I initially tried speeding it up with VirtualDub by simply changing the frame rate until the total run time went down to around 90 seconds. However, after saving the video this way, the finished product plays for about a half second, freezes for about 3 seconds, then plays and freezes again so that didn't work.
    In Sony Vegas I held down Ctrl and dragged the video slider backwards as far as it would go (5 minutes and 30 seconds) and then rendered the video, which worked. I then opened the produced 5 and a half minute video in Vegas, held down Ctrl and dragged the slider backwards to 1:36 this time and saved it again. Unfortunately this time the result was a 1:36 video of nothing, just a black screen.
    So what am I doing wrong here? There must be something fixable that's causing the video to either freeze or become nothing but black.

    Thanks for any and all help
    Quote Quote  
  2. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    One option is to use avisynth to do this. Basically you select every (nth) frame, and return the framerate back to the original fps

    In this example, I choose every 10th frame, then returned the rate back to 29.97 (assuming that's what you started out with)

    AVISource("video.avi")
    SelectEvery(10)
    AssumeFPS(30000,1001)

    You can't just change the framerate in vdub; it will just play a higher fps but the same number of framecount. You might exceed playback capabilities if it's 100's of fps for example. What you want is to sample every n frames, as if you shot it in time lapse for real

    Not sure why vegas isn't working out; it might be that you've reached a limit
    Quote Quote  
  3. Always Watching guns1inger's Avatar
    Join Date: Apr 2004
    Location: Miskatonic U
    Search Comp PM
    The last timer I did something like this I used avisynth and multiple SelectEven() statements. This helped to not only speed up the footage, but to add to the timelapse feel by actually removing frames, not blending them as Vegas does.

    Something simple like

    DirectShowSource("pathtovideo/video.avi")
    SelectEven()
    SelectEven()
    SelectEven()
    SelectEven()
    AssumeFPS(30000,1001)

    Each SelectEven() statement reduces the number of frames by 50%, so you only a few repeats to get your running time right down.
    Last edited by guns1inger; 4th Mar 2010 at 00:03. Reason: Forgot to adjust framerate
    Read my blog here.
    Quote Quote  
  4. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    Originally Posted by guns1inger View Post
    Each SelectEven() statement reduces the number of frames by 50%, so you only a few repeats to get your running time right down.
    Using this method, you are restricted to powers of two for the speed-up factor.
    Using SelectEvery as poisondeathray suggests is more flexible. For example, the 22 minute video can be sped up to 1 minute by SelectEvery(22).
    Quote Quote  
  5. Always Watching guns1inger's Avatar
    Join Date: Apr 2004
    Location: Miskatonic U
    Search Comp PM
    I know you lose some of the accuracy in timing, but you get a much better timelapse effect out of it.
    Read my blog here.
    Quote Quote  
  6. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    Originally Posted by guns1inger View Post
    I know you lose some of the accuracy in timing, but you get a much better timelapse effect out of it.
    But SelectEvery works the same way as SelectEven, removing frames rather than blending, so the timelapse effect is the same. (In effect, SelectEven is a special case of SelectEvery, ie SelectEvery(2))
    Quote Quote  
  7. Always Watching guns1inger's Avatar
    Join Date: Apr 2004
    Location: Miskatonic U
    Search Comp PM
    Depends on the effect you want to achieve. Either methods works, but the final output will vary depending on the frequency of frame removal.
    Read my blog here.
    Quote Quote  
  8. Member GreyDeath's Avatar
    Join Date: Apr 2002
    Location: Chicago, Illinois USA
    Search Comp PM
    Also don't know why Vegas didn't work for you, I've done the same thing and had it work fine. You did render it out in DV AVI I assume? :/
    "*sigh* Warned you, we tried. Listen, you did not. Now SCREWED, we all will be!" ~Yoda
    Quote Quote  
  9. Always Watching guns1inger's Avatar
    Join Date: Apr 2004
    Location: Miskatonic U
    Search Comp PM
    I used Vegas 8 Pro when I first tried to get this effect and found that after a certain amount of speed up, the results where less than good. I didn't get a black screen, but I did get stuck frames and other artefacts. Avisynth, on the other hand, worked perfectly.
    Read my blog here.
    Quote Quote  
  10. use windows movie maker, it comes with your pc unless you have a mac. its very easy to use
    Quote Quote  
  11. If I remember correctly, Vegas uses field/frame blending when it does frame rate conversions. VirtualDub can do what the OP wants. It has both source frame rate adjustment and decimation. SelectEvery(8) is exactly the same as SelectEven().SelectEven().SelectEven(), and that's exactly the same as ChangeFPS(1/8 the original fps). Well, maybe not exactly the same frame will be chosen by each. But only one frame out of every 8 will be kept. And you have to use AssumeFPS() after any of them or you'll end up with a slideshow.
    Last edited by jagabo; 9th Mar 2010 at 21:37.
    Quote Quote  
  12. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    Originally Posted by jagabo View Post
    SelectEvery(8) is exactly the same as SelectEven().SelectEven().SelectEven()
    That's basically the point I was trying to make earlier - I still don't understand what guns1inger was getting at in making a distinction between them.
    Quote Quote  
  13. Maybe he meant that you can only do powers of 2 with SelectEven(). You can't get the equivalent of SelectEvery(5), for example.
    Quote Quote  
  14. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    Originally Posted by jagabo View Post
    Maybe he meant that you can only do powers of 2 with SelectEven(). You can't get the equivalent of SelectEvery(5), for example.
    That's what I said in post #4.
    Quote Quote  
  15. Always Watching guns1inger's Avatar
    Join Date: Apr 2004
    Location: Miskatonic U
    Search Comp PM
    It is to do with the way the frames are removed. While the two methods may remove the same number of frames, the order in which they are removed will be different, which can effect the way the video appears. I really don't care what method anyone uses. I have mine, you have yours. I don't understand why it bothers you.
    Read my blog here.
    Quote Quote  
  16. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    It doesn't bother me - I was just trying to understand why you favoured one method over the other.

    But I think in any case you'll find that SelectEvery(8) removes exactly the same frames as SelectEven().SelectEven().SelectEven(). The advantage of SelectEvery (for me) is that the 8 can be changed to any number, not just the powers of two you get by adding more SelectEvens.
    Quote Quote  
  17. Originally Posted by Gavino View Post
    But I think in any case you'll find that SelectEvery(8) removes exactly the same frames as SelectEven().SelectEven().SelectEven().
    I ran a quick test:

    AVISource("filename.avi").Info()
    StackHorizontal(SelectEvery(8), SelectEven().SelectEven().SelectEven())

    A spot check over a 45 minute video showed exactly the same frames.
    Quote Quote  
  18. Member
    Join Date: Mar 2008
    Location: United States
    Search Comp PM
    poisondeathray, thanks I was searching for this effect. I used it to make a silent video clip with the video speed up to give that time lapse video, Charlie Chaplin old movie look or stop motion look.

    a = avisource ("C:\images\248CANON\MVI_3448.AVI", true )
    d = avisource ("C:\images\248CANON\MVI_3444.AVI", true )
    blank_audio_for_all=BlankClip(a, audio_rate=44100, length=a.FrameCount())
    outtakes=d.SelectEvery(5).AssumeFPS(a)
    outtakes= AudioDub(outtakes, blank_audio_for_all.trim(0,outtakes.framecount()))

    Thanks, Lindylex
    Quote Quote  
  19. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    Originally Posted by lindylex View Post
    outtakes= AudioDub(outtakes, blank_audio_for_all.trim(0,outtakes.framecount()))
    If you want the audio duration to match exactly, that should be
    outtakes= AudioDub(outtakes, blank_audio_for_all.trim(0,outtakes.framecount()-1))
    Quote Quote  
  20. Member
    Join Date: Mar 2008
    Location: United States
    Search Comp PM
    Gavino, sweet always had that problem and thanks for the solution.
    Quote Quote  
  21. Member
    Join Date: Mar 2008
    Location: United States
    Search Comp PM
    Gavino, your suggestion the line bellow does not work.
    outtakes= AudioDub(outtakes, blank_audio_for_all.trim(0,outtakes.framecount()-1))
    It does not know the length of the "outtakes" dubbed video and audio movie.

    My original works.

    outtakes=d.SelectEvery(5).AssumeFPS(a)
    outtakes= AudioDub(outtakes, blank_audio_for_all.trim(0,outtakes.framecount()))
    Last edited by lindylex; 28th Apr 2010 at 01:15.
    Quote Quote  
  22. Member
    Join Date: Nov 2005
    Location: United States
    Search Comp PM
    Here is how I do in with VirtualDub:
    Source rate adjustment: Change frame rate to (29.97 x <speed up amount>)
    Frame rate conversion: Decimate by <speed up amount>
    Quote Quote  
  23. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    Originally Posted by lindylex View Post
    Gavino, your suggestion the line bellow does not work.
    outtakes= AudioDub(outtakes, blank_audio_for_all.trim(0,outtakes.framecount()-1))
    It does not know the length of the "outtakes" dubbed video and audio movie.
    You still need the previous line as well:
    outtakes=d.SelectEvery(5).AssumeFPS(a)

    I meant you should replace just the last line. Sorry if my answer was not clear.
    Quote Quote  
  24. Member raargh's Avatar
    Join Date: Jul 2010
    Location: Earth
    Search Comp PM
    Hi Everyone!

    I'm sooo happy I found this forum and thread. I've been using Vegas 9.0 pro for quite a while but have been frustrated by the limitations of time lapse with Vegas - frame interpolation, motion blur, having to make multiple passes because even combining velocity envelope and "squeeze" one can only get 12:1 with each pass.

    I've always wanted to just throw away frames, and the tip below is exactly what I need. I'm working on a time-lapse of a drive from Durango CO to Texas for my YouTube channel, need to compress about 60:1.

    I'm and old fart programmer and love scripts, so I installed the latest AVIsynth and 64-bit VirtualDub. Using the script below, I can drag the .avs file onto Media Player Classic and to my amazement, it is perfectly speeded up!

    But, I'm having problems with Virtualdub, which I assume I need to be able to save the output. I get the following error, even after running the frameserver64.reg.

    C:\apps\virtualDub>vdub64 c:\temp2\test.avs
    VirtualDub CLI Video Processor Version 1.9.9 (build 32817/release-AMD64) for AMD64
    Copyright (C) Avery Lee 1998-2009. Licensed under GNU General Public License

    AVI: Opening file "c:\temp2\test.avs"
    AVI Import Filter error: (Unknown) (80040154)

    C:\apps\virtualDub>

    any help to get me started greatly appreciated!

    Steve


    Originally Posted by poisondeathray View Post
    One option is to use avisynth to do this. Basically you select every (nth) frame, and return the framerate back to the original fps

    In this example, I choose every 10th frame, then returned the rate back to 29.97 (assuming that's what you started out with)

    AVISource("video.avi")
    SelectEvery(10)
    AssumeFPS(30000,1001)

    You can't just change the framerate in vdub; it will just play a higher fps but the same number of framecount. You might exceed playback capabilities if it's 100's of fps for example. What you want is to sample every n frames, as if you shot it in time lapse for real

    Not sure why vegas isn't working out; it might be that you've reached a limit
    Quote Quote  
  25. Although it's quite old and maybe things have changed since then:
    Why Avisynth can't be used with 64-bit VirtualDub
    http://www.virtualdub.org/blog/pivot/entry.php?id=42

    It looks like there is a 64 bit build of AviSynth:
    http://code.google.com/p/avisynth64/
    Last edited by jagabo; 14th Jul 2010 at 22:07.
    Quote Quote  
  26. Member raargh's Avatar
    Join Date: Jul 2010
    Location: Earth
    Search Comp PM
    Thanks, jagabo!

    I've been fiddling around with vdub and it does seem to have the ability to decimate and save (at least .avi, which is the only thing that will work with the 720p vid I'm trying to create). So, for now, I don't seem to need AVIsynth. However, I will try the 64-bit version ASAP and report back.

    What I *really* need now is an external 1 TB SATA drive ... need to take a trip to CompUSA...

    Steve
    Quote Quote  
  27. There's no real advantage to using 64 bit VirtualDub. The speed gains are minimal and VirutualDub itself doesn't use much memory.

    I'd stick to the 32 bit version. And yes, VirtualDub has the ability to decimate. If you simply decimate in VirtualDub it will also slow down the frame rate, leaving you with the same running time. If you want a fast-motion video you have to increase the frame rate in the upper part of the frame rate dialog. For example, if you have a 25 fps video and you want it to run twice as fast: change the frame rate in the top part of the dialog to 50 fps, then decimate by 2. That will give you a 25 fps video with half the running time.
    Last edited by jagabo; 15th Jul 2010 at 06:32.
    Quote Quote  
  28. Member raargh's Avatar
    Join Date: Jul 2010
    Location: Earth
    Search Comp PM
    Thanks, Jagabo.

    I've mastered using VirtualDub to do the timelapse/decimate. Pretty easy.

    But, now I'm really in the middle of a space crisis. I have the hi-res (1280x720) files from my Sony HDR-CX-550V that I shot on the drive with the camera hanging upside-down. I need to get them into a format thay vdub can read; I have been using AVI. So, I render them in Vegas Pro 9, rotating 180 degrees. Vdub can then read and decimate. But, using uncompressed AVI, the ~ 3 GB source files explode to about 200GB.

    I've been searching around for a lossless AVI codec. Tried huffyuv 2.2.2 , but in Vegas, it does not show up as an option when rendering .avi. I suspect the problem is related to vfw vs directshow. I tried using the Sony 10-bit YUV, but VirtualDub cannot read the resulting files.

    So, is there a way to render my camera files in Vegas, using lossless compression, into 1280x720 files that vdub can work with?

    Thanks!

    Steve
    Quote Quote  
  29. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    are you using x64 vegas , and x64 huffyuv ? x86 version won't show up in 64-bit software

    x64 huffyuv can be found here
    http://members.optusnet.com.au/squid_80/
    Quote Quote  
  30. Virtualdub can probably load your camcorder's files directly with the right source plugin and codecs. It also has a rotate filter.
    Quote Quote  



Similar Threads