It looks like you're doing a two-pass encode. This is usually only useful if you're concerned with hitting an exact target file size. I think in your case you might not actually need it.
I'd leave off some of those other arguments as well because generally ffmpeg
/x264
"do the right thing".
To that end, you could likely get what you need with one pass:
ffmpeg -y -i input.mov -c:v libx264 -tune film -c:a copy output.mp4
The difference to your original command:
- Rely on some
x264
defaults (-preset medium
being one of them)
-tune film
will tell x264
that the source is "live" (as opposed to animation, still, etc)
- Audio is copied directly (probably low enough already that re-encoding won't gain you a whole lot)
If you still find that the file sizes are too large, you can reduce the quality a little (-crf
in the following, default is 23
):
ffmpeg -y -i input.mov -c:v libx264 -tune film -crf 24 -c:a copy output.mp4
If you increase the -crf
value, it will decrease the file size, but also decrease the output video quality. I'd suggest playing with the -crf
value until you find a value that you're happy with.