2

Based on some of my videos I would like to make time-lapse videos with motion blur. My inspiration is this YouTube video:

Time-lapse with motion blur from video with Avidemux, AviSynth and VirtualDub (starting at 6:42)

In the video the man uses VirtualDub with

AviSource("path") 
Merge(selectEven(), SelectOdd()) 
Merge(selectEven(), SelectOdd()) 
Merge(selectEven(), SelectOdd()) 
Merge(selectEven(), SelectOdd()) 
AssumeFPS(30)

My source video has 60fps. Based on the tips given here I tried:

ffmpeg -i IN.MOV \
  -vf "tblend=average,framestep=2,tblend=average,framestep=2,setpts=0.25*PTS" \
  -r 60 -an OUT.MOV

Unfortunately my results are not similar, not so good as in the video. Difficult to say where the different is: the time-lapse effect is missing a bit, the motion blur is “different”? I am sorry, I cannot explain.

Maybe some of you have a tip how to switch die VirtualDub approach to FFmpeg regardless of my poor explanation?

Thanks in advance!

astefan

2
  • 1
    Can you share a sample of your source?
    – Gyan
    Mar 27, 2018 at 19:25
  • I think there is something missing. The guy here in this video is joining files in this program amd programing in this... he cant remember how he got the "Right" codec... Smells fishy. You need to get some good tools ro get good looking finished product. At the very least find an old version of adobe pr even the Free version of AVID...
    – Dan Archer
    Mar 27, 2018 at 21:47

2 Answers 2

0

Perhaps something like this:

"split[v1][v2],[v1]select='eq(mod(n,2),0)'[v1],[v2]select='eq(mod(n,2),1)'[v2],[v1][v2]mix,split[v1][v2],[v1]select='eq(mod(n,2),0)'[v1],[v2]select='eq(mod(n,2),1)'[v2],[v1][v2]mix,split[v1][v2],[v1]select='eq(mod(n,2),0)'[v1],[v2]select='eq(mod(n,2),1)'[v2],[v1][v2]mix,split[v1][v2],[v1]select='eq(mod(n,2),0)'[v1],[v2]select='eq(mod(n,2),1)'[v2],[v1][v2]mix"

4
  • Thanks but something seems to be wrong. I tried the following command: ffmpeg -i IN.MOV -vf "your block" -r 60 -an OUT.MOV but only get No such filter: 'mix' Error reinitializing filters! Failed to inject frame into filter network: Invalid argument Error while processing the decoded data for stream #0:0 Any ideas? Thanks!
    – astefan
    Mar 27, 2018 at 18:53
  • You'll need a recent git binary of ffmpeg. Filter was added in late Nov '17.
    – Gyan
    Mar 27, 2018 at 19:25
  • instead of mix filter you can use blend=all_mode=average
    – user12174
    Mar 28, 2018 at 7:11
  • Tried the suggestion of Paul B. Mahol. The blureffect is great but there is no speed up/no time lapse of the movie. I tried: ffmpeg -i in.MOV -vf "split[v1][v2],[v1]select='eq(mod(n,2),0)'[v1],[v2]select='eq(mod(n,2),1)'[v2],[v1][v2]mix,split[v1][v2],[v1]select='eq(mod(n,2),0)'[v1],[v2]select='eq(mod(n,2),1)'[v2],[v1][v2]mix,split[v1][v2],[v1]select='eq(mod(n,2),0)'[v1],[v2]select='eq(mod(n,2),1)'[v2],[v1][v2]mix,split[v1][v2],[v1]select='eq(mod(n,2),0)'[v1],[v2]select='eq(mod(n,2),1)'[v2],[v1][v2]mix,setpts=0.25*PTS" -r 60 -an out.MOV @Gyan
    – astefan
    Jun 5, 2018 at 19:25
0

I have no idea how your video looks, and why it looks different. And I have no idea on what settings you can put to your script. Sorry about that.

What I want to mention, (which is a bit long for just a comment) is that the amount of blur you see on the video greatly depends on how many frames you are compressing on one "time-lapsed" frame.

Take a look at this closeup of the video you posted. You can clearly see that the motion blur is added on the top of a lot of frames merged.

enter image description here

So, there is a chance that the other video has a different number of frames, or was shot at a different framerate, therefore when compressed, they have more frames to work with.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.