I guess this thread needs an update. On latest ffmpeg (3.4.1) I get:
$ time ffmpeg -y -f lavfi -i nullsrc=s=hd720:d=600 -preset ultrafast out.mp4
real 0m26.578s
$ time ffmpeg -y -f lavfi -i nullsrc=s=hd720:d=600 -movflags +faststart -preset ultrafast out.mp4
real 0m26.849s
Same results. Now try with a real video:
$ time ffmpeg -y -i Sintel.2010.1080p.mp4 -preset:v ultrafast out.mp4
real 3m38.829s
$ time ffmpeg -y -i Sintel.2010.1080p.mp4 -preset:v ultrafast -movflags +faststart out.mp4
real 3m43.674s
About 2% difference, that could be just noise.
Also need to note that "Starting second pass: moving the moov atom to the beginning of the file" phase took no more than couple seconds on 600Mb output file.
-movflags faststartindeed (without the+sign). See: https://ffmpeg.org/ffmpeg-formats.html#Options-8 – Siu Ching Pong -Asuka Kenji- Dec 23 '18 at 14:59+or not. – llogan Dec 26 '18 at 00:17.mkvoutput? I don't get an error, so does that mean it's simply being ignored? – Hashim Aziz Mar 09 '21 at 02:07-movflags faststartsets the flags to exactlyfaststart;-movflags +faststartaddsfaststartto whatever the preexisting list of flags is. (Similarly,-faststartwould removefaststartfrom the flags list.) – BallpointBen Mar 19 '24 at 18:57