6 Feb 2022 – Ronny Errmann – last modified on 31 March 2022
Some useful bits which helped me to make the time lapse videos I recorded ready to be published on youtube: Youtube Channel Ronny Errmann
Rotate an mp4 video:
For when the phone was upside down during the recording.
ffmpeg -i input.mp4 -c copy -metadata:s:v rotate="180" output.mp4
Crop an mp4 video:
When personal information is in an area of the video.
1. Get the video resolution:
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 input.mp4
2. Modify the video:
ffmpeg -i input.mp4 -filter:v "crop=1280:600:0:120" output.mp4
Cut an mp4 video:
To keep 00:00:00 to 00:01:22, because afterwards only night was recorded as work had to be finished first.
ffmpeg -i input.mp4 -ss 00:00:00 -to 00:01:22 -c copy output.mp4
Merge/concatenate mp4 videos:
When you notice at the end of a time lapse that the sky is still amazing and you recorded a second one.
Several lines of shell script, run with sh:
for f in $(ls input*.mp4); do
ffmpeg -i $f -c copy -bsf:v h264_mp4toannexb -f mpegts $f.ts
CONCAT=$(echo $(ls *.ts) | sed -e "s/ /|/g")
ffmpeg -i "concat:$CONCAT" -c copy -bsf:a aac_adtstoasc output.mp4
Use Version 2 if this fails with:
Codec 'mpeg4' (12) is not supported by the bitstream filter 'h264_mp4toannexb'
rm -f mylist.txt; for f in input*.mp4; do echo "file '$f'" >> mylist.txt; done
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
Change the speed of mp4 videos:
You took a time lapse, but the viewers are bored, because changes are too small. Time to speed the video up.
ffmpeg -i input.mp4 -r 16 -filter:v "setpts=0.50*PTS" output.mp4
0.5*PTS mean twice the speed, 0.1*PTS would mean ten times the speed, and 2*PTS would mean half the speed.
Change of resolution of mp4 videos:
ffmpeg -y -i input.mp4 -vf scale=480:-2,setsar=1:1 -c:v libx264 -c:a copy output.mp4
The 480 gives the horizontal resultion and the heigh is calculated by keeping the same aspect ratio.