VideoHelp Forum
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 39
Thread
  1. I've been seen to many time lapse videos nowadays that I wonder the best method to do them. Is it just adjusting the frame rate? Or are there a better tool around? Avidemux only allow to increase fps to max 200.

    The question is: how to make a good time lapse video? A frame rate issue? Or is there another tool that collect few frames and goes ahead many others to collect more?
    Thank you.
    Quote Quote  
  2. What is your definition of 'time lapse'? Can you link to an example?
    Time lapse usually means taking a frame and letting a set time period go by (lapse) before taking the next frame.
    At 200 fps what you would get is 'slow motion' when viewed at normal speed, say 30 fps.
    Time-lapse means taking 1 (ONE!) frame every 10 or 15 or whatever-you-decide SECONDS apart!

    Here is a brilliant example of time lapse video:

    http://vimeo.com/9679622

    And an introduction on how to do it here:

    http://www.hongkiat.com/blog/how-to-make-time-lapse-video-ultimate-guide/
    Quote Quote  
  3. Originally Posted by transporterfan View Post
    At 200 fps what you would get is 'slow motion' when viewed at normal speed, say 30 fps.
    Yeah, you're right! I had mentioned 200 fps just because this is the limit for Avidemux. I'd like to input 2000 or even much more.

    I know what time lapse is, but I'd like to apply that effect to a video already made normally, not to adjust the camera to take frame by frame along a entire day, but to steal many frames from an already made video. Got it?

    Intervalometer and D-Software Cam Control takes control of the shutter interval. But, as I said, the video is alredy done.

    How to make automatic the retreat of many frames from a video?
    Thank you.
    Quote Quote  
  4. So, what you mean is, 'I already have footage from a camcorder taken at 60fps. What program do I use to automatically extract frames @60 frames apart (1 second interval), put them on a time line, let me edit them in anyway I like, and rebuild a video from these selections?'

    If that is what you mean then my answer is: I haven't a clue.

    Anyone else know?
    Quote Quote  
  5. Originally Posted by poisondeathray View Post
    avisynth 's selectevery() or vdub
    Poisondeathray, as usual, you have my answer!
    Of course, Avisynth!

    I was thinking about some tool, some GUI. But I can always use Avspmod.

    Except Avisynth, any tool with graphic interface out there to do this task?
    Thank you.
    Quote Quote  
  6. Originally Posted by jairovital View Post

    Except Avisynth, any tool with graphic interface out there to do this task?
    vdub , scroll down in that link for instructions

    https://forum.videohelp.com/threads/317543-Trying-to-make-a-time-lapse-video-%28speedin...=1#post2002122

    or any NLE
    Quote Quote  
  7. Great, poisondeathray! That thread has everything I wanted to know!

    Thank you.
    Quote Quote  
  8. Member
    Join Date
    Feb 2012
    Location
    Sydney, Australia
    Search PM
    I did this recently using time remapping in After Effects. Here's a good write up about it: http://help.adobe.com/en_US/aftereffects/cs/using/WS3878526689cb91655866c1103906c6dea-7d4da.html
    Quote Quote  
  9. Originally Posted by OrrinH View Post
    I did this recently using time remapping in After Effects. Here's a good write up about it: http://help.adobe.com/en_US/aftereffects/cs/using/WS3878526689cb91655866c1103906c6dea-7d4da.html
    Another good method. Could you post a small sample of what you did here?
    Thank you.
    Quote Quote  
  10. Member
    Join Date
    Feb 2012
    Location
    Sydney, Australia
    Search PM
    Ahh not at the moment sorry, it's a segment of a longer clip which is still a WIP.

    It was a 10 minute recording which we shrunk down to about 15 seconds with 10 seconds of normal speed play at either end. Took no more than 5 minutes to setup, which I was really happy about but the rendering speed took a massive hit because of it.
    Quote Quote  
  11. Member budwzr's Avatar
    Join Date
    Apr 2007
    Location
    City Of Angels
    Search Comp PM
    Yeah, that would be a simple thing any NLE should be able to do. I suppose you could buy a $1000 software like AE to do it, but not necessary. Save AE for more important things like smoke puffs, comets, and exploding planets.

    Quote Quote  
  12. Originally Posted by poisondeathray View Post
    avisynth 's selectevery() or vdub
    Poisondeathray, if you still around, how I do the same for the audio?
    I mean, how to change the speed of the audio to match the video?

    Reading SelectEvery I know I can use SelectRangeEvery with audio false or true. But it doesn't work with DirectShowSource or ffVideoSource/ffAudioSource. Audio is always the same (original audio, not speeded up).

    Code:
    DirectShowSource("D:\work\test1.mp4")
    #A = FFAudioSource("D:\work\test1.mp4")
    #V = FFVideoSource("D:\work\test1.mp4")
    selectevery(last, 10)
    #selectrangeevery(V, 10, audio=true)
    AssumeFPS(30000,1001)
    #AudioDub(V, A)
    BTW, using ffmpegsource, selectevery/selectrangeevery dosn't work. I must use DirectShowSource to get the fast foward effect. Why?

    My goal:
    Learn how to put into an avisynth script the right lines to speed up audio and video, with synchronism.

    Other questions: what's the difference between DirectShowSource and ffmegSource when the similarity and distance (in quality) from the original is important? Which are the better if I want to preserve the most of the original?
    Last edited by jairovital; 25th Apr 2012 at 13:01.
    Thank you.
    Quote Quote  
  13. I don't know if SelectEvery processes audio, but SelectRangeEvery apparently does according to the documentation

    The reason why DirectShowSource works, but FFVideoSource doesn't, is SelectRangeEvery must come after audiodub (otherwise you are using video only) . DirectShowSource has audio=true by default, so includes video+audio by default

    Or you can use FFMpegSource("video.ext", atrack=-1) . It's a helper function that simplifes FFAudioSource and FFVideoSource with AudioDub

    DirectshowSource is inconsistent and may be not frame accurate in some situations (e.g. temporal filtering) , but FFMS2 has some quirks as well (sometimes frame rate is a bit off, but you can fix with AssumeFPS, or fpsden, fpsnum in the source filter)
    Quote Quote  
  14. SelectEvery() doesn't process the audio because it doesn't change the video length. Ie, a 10 second 30 fps video after SelectEvery(10) is still 10 seconds long, but only 3 fps. If you want to make it play faster you have to AssumeFPS(30) after. But that doesn't change the audio either. So you'll have 3 seconds of video with 10 seconds of audio.

    You can change the audio duration with:

    Code:
    #assuming 48000 Hz audio
    ResampleAudio(4800).AssumeSampleRate(48000)
    But that will give you very high pitched audio. I don't know a way to keep only the audio from every 10th frame. That's not to say there isn't a way. I don't do much audio processing in AviSynth.
    Last edited by jagabo; 25th Apr 2012 at 13:27.
    Quote Quote  
  15. Originally Posted by poisondeathray View Post
    The reason why DirectShowSource works, but FFVideoSource doesn't, is SelectRangeEvery must come after audiodub (otherwise you are using video only)
    Done, but ffVideoSource/ffAudioSource doesn't work. Video and audio play in normal speed, they don't speed up. Audio true or false in SelectRangeEvery doesn't change the speed.

    Originally Posted by poisondeathray View Post
    Or you can use FFMpegSource("video.ext", atrack=-1).
    Done, but "there is no function named ffmpegsource" error message...
    Thank you.
    Quote Quote  
  16. Originally Posted by jagabo View Post
    SelectEvery() doesn't process the audio because it doesn't change the video length. Ie, a 10 second 30 fps video after SelectEvery(10) is still 10 seconds long, but only 3 fps. If you want to make it play faster you have to AssumeFPS(30) after. But that doesn't change the audio either. So you'll have 3 seconds of video with 10 seconds of audio.
    Good explanation.

    But there is no way to speed up the audio in avisynth?
    Thank you.
    Quote Quote  
  17. Originally Posted by jairovital View Post
    Originally Posted by poisondeathray View Post
    The reason why DirectShowSource works, but FFVideoSource doesn't, is SelectRangeEvery must come after audiodub (otherwise you are using video only)
    Done, but ffVideoSource/ffAudioSource doesn't work. Video and audio play in normal speed, they don't speed up. Audio true or false in SelectRangeEvery doesn't change the speed.
    Not sure. I'll have a look. Normally you don't use original audio for this sort of thing (glitchy audio because you are sampling every x frames)

    Note sampling the audio every x frames isn't the same thing as time compressing the audio




    Originally Posted by poisondeathray View Post
    Or you can use FFMpegSource("video.ext", atrack=-1).
    Done, but "there is no function named ffmpegsource" error message...
    Typo. It should be FFMpegSource2 . You need the .avsi included with the ffms2 package
    Last edited by poisondeathray; 25th Apr 2012 at 13:24.
    Quote Quote  
  18. Originally Posted by jairovital View Post
    Originally Posted by jagabo View Post
    SelectEvery() doesn't process the audio because it doesn't change the video length. Ie, a 10 second 30 fps video after SelectEvery(10) is still 10 seconds long, but only 3 fps. If you want to make it play faster you have to AssumeFPS(30) after. But that doesn't change the audio either. So you'll have 3 seconds of video with 10 seconds of audio.
    Good explanation.

    But there is no way to speed up the audio in avisynth?
    I added one way in that post.
    Quote Quote  
  19. Originally Posted by jagabo View Post
    You can change the audio duration with:
    #assuming 48000 Hz audio
    ResampleAudio(4800).AssumeSampleRate(48000)
    This will match the audio with selectEvery?

    Originally Posted by jagabo View Post
    But that will give you very high pitched audio.
    I know. But my purpose is just to learn.

    Originally Posted by poisondeathray View Post
    Typo. It should be FFMpegSource2 . You need the .avsi included with the ffms2 package
    It's fine, here.
    Thank you.
    Quote Quote  
  20. ResampleAudio(4800).AssumeSampleRate(48000)
    I'm testing and getting real pitched audio here. Not sure if it matches the video speed. I'll try later with some explosions, because it's easier to check the syncronism.
    Thank you.
    Quote Quote  
  21. I don't think resampling the audio will help for what you want to do because you are selecting every "x" video frames . The other frames are discarded. So audio won't match exactly

    Resampling audio means you keep all original audio samples, just speed it up.

    SelectRangeEvery(audio=true) does keep the audio from every "x" frames, so it matches the video, but then you get glitchy audio (the video drops match the audio drops)
    Quote Quote  
  22. For example, a 2x speedup:

    Code:
    AviSource("SuntoryBeer2.avi") 
    SelectEvery(2).AssumeFPS(23.976)
    ResampleAudio(24000).AssumeSampleRate(48000)
    Image Attached Files
    Quote Quote  
  23. Originally Posted by poisondeathray View Post
    I don't think resampling the audio will help for what you want to do because you are selecting every "x" video frames . The other frames are discarded. So audio won't match exactly
    You are right. Testing here, resampling audio gives the same result no matter selectEvery is.

    Originally Posted by poisondeathray View Post
    SelectRangeEvery(audio=true) does keep the audio from every "x" frames, so it matches the video, but then you get glitchy audio (the video drops match the audio drops)
    Good, but my SelectRangeEvery here doesn't work... It plays the same speed, audio and video...
    Thank you.
    Quote Quote  
  24. Originally Posted by jagabo View Post
    For example, a 2x speedup:

    Code:
    AviSource("SuntoryBeer2.avi") 
    SelectEvery(2).AssumeFPS(23.976)
    ResampleAudio(24000).AssumeSampleRate(48000)
    Thank you, jagabo. But if you change SelectEvery to 5, the audio will be the same as 2. The resampling keeps the audio at same speed, regardless SelectEvery.
    Thank you.
    Quote Quote  
  25. Originally Posted by jairovital View Post
    Originally Posted by poisondeathray View Post
    I don't think resampling the audio will help for what you want to do because you are selecting every "x" video frames . The other frames are discarded. So audio won't match exactly
    You are right. Testing here, resampling audio gives the same result no matter selectEvery is.

    Originally Posted by poisondeathray View Post
    SelectRangeEvery(audio=true) does keep the audio from every "x" frames, so it matches the video, but then you get glitchy audio (the video drops match the audio drops)
    Good, but my SelectRangeEvery here doesn't work... It plays the same speed, audio and video...
    Seems to work ok here. The frame rate is the same, but it's sampled every "x" frames for video & audio

    eg.

    ffmpegsource2("video.ext", atrack=-1)
    selectrangeevery(4, 1, audio=true)

    would give you every 4nd frame (video & audio)

    Here is an example - Ironman movie trailer
    Image Attached Files
    Quote Quote  
  26. Originally Posted by poisondeathray View Post
    Seems to work ok here. The frame rate is the same, but it's sampled every "x" frames for video & audio

    ffmpegsource2("video.ext", atrack=-1)
    selectrangeevery(4, 1, audio=true)
    Great! Now it's working.

    My mistake:
    Code:
    selectrangeevery(last, 10, audio=true)
    No!

    The right line:
    Code:
    selectrangeevery(last, 10, 1, audio=true)
    Big thanks!
    Thank you.
    Quote Quote  
  27. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    An alternative way to handle the audio (possibly better, depending on the effect you want to achieve) would be to use TimeStretch().
    Code:
    SelectEvery(10).AssumeFPS(last)
    TimeStretch(tempo=10)
    This speeds up the audio while preserving the original pitch, but uses information from all the original audio samples
    (rather than just discarding chunks as SelectRangeEvery does).
    Quote Quote  
  28. Originally Posted by Gavino View Post
    This speeds up the audio while preserving the original pitch, but uses information from all the original audio samples (rather than just discarding chunks as SelectRangeEvery does).
    Gavino, your solution is even better! preserves all the audio samples.
    Cool.
    Thank you.
    Quote Quote  
  29. In the version of AviSynth I have TimeStreth's tempo parameter is percent. Ie, tempo=10 makes the tempo 1/10 of the original (very slow). If you want it twice as fast you specify tempo=200. 10 times as fast, tempo=1000.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!