2

I'm currently trying to make a time lapse video. This can be done fine with iMovie, however, I'm having one simple issue. Is there any way to accelerate a video progressively with any open source software?

I specifically named ffmpeg, because I've always had the feeling ffmpeg can do anything :). However, if there is any other (free) alternative, I'd be quite glad to hear of it as well.

If you want to know why, I want to progressively increase the speed to give a dramatic effect to my video.

Essentially, I want the video to get faster as it progresses.

4
  • 1
    What do mean by "progressively"? I'm assuming you want your output to speed up in a non-linear fashion, as in the video will become faster as the video progresses. Is this correct?
    – llogan
    Jan 26, 2012 at 2:04
  • That is absolutely correct.
    – boopyman
    Jan 26, 2012 at 2:14
  • 1
    FFmpeg by itself (I'm referring to the binary, not using it programatically via the libraries) can speed up your video, but only in a linear, constant speed. slowmoVideo can change the speed of your video dynamically and add motion blur if desired. It's free, but currently only available for Linux.
    – llogan
    Jan 26, 2012 at 20:08
  • Hmmm... Thanks for suggesting, it looks pretty awesome ! It's just a shame there's now Windows or OSX version...
    – boopyman
    Jan 26, 2012 at 20:31

7 Answers 7

3

If you have a Linux machine with an nVidia card you might try this: http://slowmovideo.granjow.net/

I've been using slowmovideo. It's still very much alpha software. However, I've been getting some pretty impressive results.

I also progressively speed up video using Blender VSE. Just like slowmovideo, blender lets you change the video speed by manipulating an IPO curve.

2
  • Great answer for Linux users. See my answer for Mac solution.
    – boopyman
    Feb 3, 2012 at 22:17
  • Blender will run on Windows and OSX too.
    – Jason
    Mar 7, 2012 at 22:03
3

if i unterstood correctly - you are asking for a speed-ramp? check this out, and tell us if it works for you:

ffmpeg -y -i 15.mp4 -filter:v "setpts=(1.5-0.002*N)*PTS" new.mp4

this ist the movie making slow to fast, and the other one from fast to slow:

ffmpeg -y -i 15.mp4 -filter:v "setpts=(0.003*N+0.5)*PTS" new.mp4

where N is the framenumber starting at 0 to the max of 30fps*15seconds = 450.

The numbers 1.5 and 0.002 and 0.003 and 0.5 are parameters to change for your belongings, it tells at which speed to start, which speed to reach and how fast.

For more details look at the ffmpeg-filter-documentation

2
  • can i make from slow to fast than fast to slow within one video? Apr 12, 2022 at 16:55
  • Can you share some more of the math behind this?
    – o_ren
    Dec 18, 2023 at 17:14
1

DaVinci Resolve free version can do variable speed control on a clip if this is what you're after i.e. for the duration of the clip, it's playback speed changes gradually from A to B.

If your video is missing frames e.g. due to excessive slow down you can even make it insert generated frames by using the "Optical Flow" feature.

1
  • I just tried that, but that does not work progressively: The video does not speed up steadily, but runs faster at a fixed rated only. Just changing the speed to +500% is nothing special, any video editor can do that, he means that while the video plays, it is +500% then +520%, then 550% and so on, faster and faster. Aug 23, 2021 at 11:17
0

If someone wants to do this on a Mac, here's how.

Download the free trial of Final Cut Pro X (it's 30 days).

In Final Cut Pro X, you have two options that essentially do exactly what SlowMoVideo does:

  • Optical Flow (the creation of frames based on the direction pixels move), for smoother slow motion.
  • A Retiming Ramp, which lets you either gradually go to 0% speed, or from 0% speed.
0

I think you could script it. For each picture, make a video of only this picture, but make the time show sorter and sorter. After all pictures are processed, then concat all the videos into one video, where each picture will now be shown a shorter and shorter time.

0

Render your movie as series of images. To speedup your timelapse simply delete every other image. Then combine rest of images with ffmpeg like this: ffmpeg -i image-%03d.jpg foo.avi

0

Neither Kdenlive nor Shotcut can do speed ramping, but here's a workaround:

  1. Have the two clips next to each other. The transition will transform the last 7 seconds of the first clip into 3/8s, and the first 7 seconds of the second clip into 3/8s, for a total transition time of 6/8s.
  2. Seek to the end of the first clip.
  3. Seek back 4 seconds, and split. Set the speed of this 4s clip to 32x.
  4. Seek 2 more seconds back, and split. Set the speed to 16x.
  5. Seek 1 more second back, and split. Set the speed to 8x.
  6. Repeat steps 3, 4, 5 in reverse order for the second clip. I.e. Split at 4, 2 and 1 seconds, and set the speeds to 32x, 16x, 8x.
  7. Remove the blank spaces between the clips.

Note that each of the ramp sections lasts for 1/8 seconds: 1s @ 8x, 2s @ 16x, 4s @ 32x <-- for the first clip; the second clip will have 18/s second sections in reverse order: 4s @ 32x, 2s @ 16x, 1s @ 8x.

Note that due to a bug in Shotcut, you may see extra frames. You'll have to remove those manually.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .