synner
synner

Reputation: 31

Can I double a video duration by halving the FPS using FFMPEG?

I shot a time-lapse with my DSLR which the camera auto-assembled into a 10 sec MOV file - 1080p, 60 fps (600 frames total). What I am trying to do is double the duration (from 10 to 20 seconds) by halving the FPS rate (from 60 fps to 30 fps).

I tried various links here on SO and on the Interwebz but none seem to do the trick. Almost all propositions on the webz refer to using the -filter:v "setpts=2*PTS" option with or without the -r parameter, but all I end up is 10-sec MOV/MP4/MVK with 30 FPS (50% of frames are dropped).

Exact commands I've used:

ffmpeg.exe -y -i ..\..\DSC_0898.MOV -c:v libx264 -preset veryslow -r 30 -crf 18 -movflags faststart -filter:v "setpts=2*PTS" -vf deshake -vf "eq=contrast=1.3:brightness=-0.05:saturation=1.3" ..\..\output.mkv -hide_banner -an

ffmpeg.exe -y -i ..\..\DSC_0898.MOV -c:v libx264 -preset veryslow -r 30 -crf 18 -movflags faststart -filter:v "setpts=2*PTS" -vf deshake -vf "eq=saturation=1.2" ..\..\output.mkv -hide_banner -an

ffmpeg.exe -y -i ..\..\DSC_0898.MOV -movflags faststart -r 30 -filter:v "setpts=2*PTS" -vf deshake -vf "eq=saturation=1.2" ..\..\output.mp4 -hide_banner -an

Upvotes: 1

Views: 438

Answers (1)

Gyan
Gyan

Reputation: 93329

All of those would have worked, except for one thing. There can only be one video filterchain per output, so rewriting, say, the 3rd command, it would be

ffmpeg.exe -y -i ..\..\DSC_0898.MOV -movflags +faststart -r 30 -filter:v "setpts=2*PTS,deshake,eq=saturation=1.2" -an ..\..\output.mp4 -hide_banner

Upvotes: 0

Related Questions