Why does a video file get bigger after editing it with iMovie?

Solution 1:

720p resolution is 1280×720, which equates to quadruple the number of pixels vs. your original 640×360 (360p) movie. This alone would account for a huge jump in storage size.

You'll want to output in 540p instead (960×540). However this will still produce a video with 2.25× the number of pixels, so the resulting video may or may not still be larger.

As to why you can’t output in 360p, this appears to be a design decision by Apple (possibly to steer us towards Final Cut Pro), because earlier versions of iMovie allowed more granularity. In fact, in iMovie 10.0, 480p was still available, but as of iMovie 10.1, it’s gone. I suggest you voice your concerns to Apple.

Lastly, I should point out that Low, Medium and High Quality settings all encode in H.264. They just use different encoding profiles/levels, with varying bitrates. From the figures you provided, I’d say your original video wasn’t produced using a profile equivalent to iMovie’s High setting. So you’ll probably want to try Medium or even Low.

If you still can’t keep your file size down encoding in 540p and using a lower profile, you can still down-sample it through Handbrake. However the upscaling-downscaling is sure to lower your video quality by some token amount. So it's a tradeoff.

Solution 2:

I had the same problem as you. I searched all over and gave up on improving iMovie which is using x264 anyway. Instead, I used ffmpeg (https://www.ffmpeg.org/). It worked like a charm. My following command reduced the iMovie video size in average 1/5th.

ffmpeg -i input.mp4 -vcodec libx265 -crf 20 output.mp4

Note how it's using the better codec of x265. If you are considering EC2 Cloud9 like me, consider installing ffmpeg with this instruction (https://trac.ffmpeg.org/wiki/CompilationGuide/Centos).