Skip to content

Instantly share code, notes, and snippets.

@lukehedger
Last active July 12, 2024 14:34
Show Gist options
  • Save lukehedger/277d136f68b028e22bed to your computer and use it in GitHub Desktop.
Save lukehedger/277d136f68b028e22bed to your computer and use it in GitHub Desktop.
Compress mp4 using FFMPEG
$ ffmpeg -i input.mp4 -vcodec h264 -acodec mp2 output.mp4
@lnfel
Copy link

lnfel commented Jan 9, 2023

ligantx experiment is the most efficient (tested on macOS), 700k for bitrate seems to be a good measure for maintaining quality while lowering file size:

ffmpeg -i input.mp4 -vcodec h264 -b:v 700k -acodec mp3 output.mp4

@cabiste-dev
Copy link

i'm gonna add some notes here

  1. in the time of writing this (jan 2023) you don't need to specify h264 as the video codec in ffmpeg when the output is mp4 since that's the default codec
  2. for audio it's better to specify the bitrate rather than the codec, 96Kb is good enough -b:a 96k
  3. not all videos will look good with a video bitrate of 700kb it depends on the resolution, the original codec used and whether there's a lot of movement / particles

I'd recommend that you first let ffmpeg compress it automatically without any arguments ffmpeg -i input.ext output.mp4

  • if the output is not enough then use 2/3 of the original video bitrate with -b:v and keep lowering until you reach a desired size
  • you can lower the resolution with -vf scale=1280:720
  • if you only want to save your video on your pc then use the new mp4 codec 265 -c:v libx265, it has better compression, and just ike 264, nearly lossless. the issue with this is that it's still not widely adapted and sites like discord can't play it

@gideonseven
Copy link

Commands using Linux with ffmpeg to shrinking big MP4 video file to smaller sizes

  • ffmpeg -i input.mp4 -vcodec h264 -acodec mp2 out.mp4
    • 3.6 Gb to 556 Mb, great quality πŸ₯‡
  • ffmpeg -i input.mp4 -s 1280x720 -acodec copy -y output.mp4
    • 3.6 Gb to 62 Mb, quality "good enough"/acceptable πŸ‘
  • ffmpeg -i input.mp4 -vcodec h264 -b:v 1000k -acodec mp3 output.mp4
    • 3.6 Gb to 30 Mb, very shitty quality πŸ’©

good enough worked fine for me..To my "average human" eye, i coudlnt find any real difference with the original video compared side by side (original: 1gb to good enough: 296mb)

Edit: if you wanna go lower try changinng -b:v value e.g.: ffmpeg -i input.mp4 -vcodec h264 -b:v 700k -acodec mp3 output.mp4 and if you don't want sound try: ffmpeg -i input.mp4 -vcodec h264 -b:v 700k -an output.mp4

My experiment:

  • ffmpeg -i input.mp4 -vcodec h264 -b:v 1000k -an output.mp4
    32MB to 3.6MB
  • ffmpeg -i input.mp4 -vcodec h264 -b:v 200k -an output.mp4
    32MB to 742KB

thanks, it works.
using || -b:v 1000K || ---- from 2MB to 1MB mp4 file

@drinkmorewaters
Copy link

drinkmorewaters commented Jan 14, 2023

./ffmpeg -i input.mp4 -c:v libx265 -preset ultrafast -crf 28 -c:a aac -b:a 250k output.mp4

This is better for h265, it's fast and should reduce the file size by 50-70% if you want better video, change the ultrafast to fast or change the -crf to a lower number like 24

If you want to change from 4K to 1080P, add -s 1920x1080 after the -i input.mp4

@dwbapst
Copy link

dwbapst commented Jan 18, 2023

./ffmpeg -i input.mp4 -c:v libx265 -preset ultrafast -crf 28 -c:a aac -b:a 250k output.mp4

This is better for h265, it's fast and should reduce the file size by 50-70% if you want better video, change the ultrafast to fast or change the -crf to a lower number like 24

If you want to change from 4K to 1080P, add -s 1920x1080 after the -i input.mp4

This worked pretty well for me -- converted a 323 MB Zoom recording to a 81 MB file. without reducing resolution, is there anything more one can do to further shave off the file size?

@clairechen7
Copy link

Commands using Linux with ffmpeg to shrinking big MP4 video file to smaller sizes

  • ffmpeg -i input.mp4 -vcodec h264 -acodec mp2 out.mp4
    • 3.6 Gb to 556 Mb, great quality πŸ₯‡
  • ffmpeg -i input.mp4 -s 1280x720 -acodec copy -y output.mp4
    • 3.6 Gb to 62 Mb, quality "good enough"/acceptable πŸ‘
  • ffmpeg -i input.mp4 -vcodec h264 -b:v 1000k -acodec mp3 output.mp4
    • 3.6 Gb to 30 Mb, very shitty quality πŸ’©

Thanks for sharing, really helpful!

@AD5GB
Copy link

AD5GB commented Jun 20, 2023

None of these have done anything, but give me a 30-35% INCREASE in size. I'm still determined to find a solution but attempts to compress this video by ANY means results in similar results.....

@cabiste-dev
Copy link

@AD5GB as i said before here, it depends on what video you have, so you need to experiment a bit

@aoi306
Copy link

aoi306 commented Oct 8, 2023

Very good! Using it, reduced 86mb to 64mb. thank you all. I also summarized some other methods, I hope it can help everyone https://vidon.me/compress-mp4

@Wennyanaa
Copy link

Nice! It works! Thanks for sharing you. Also, use this DVD to MP4 Converter to compress your DVD contents.

@nonetrix
Copy link

Myfans
...

We have OnlyFans bots on Github now? Thanks my day is ruined

@IlkaUMR
Copy link

IlkaUMR commented Jan 29, 2024

Thanks for sharing! I've used a programm before and the compressed videos always got pixelated, blurry, or blocky. This one works just fine. I've also found an article introducing people how to convert blu ray to MP4. It might be useful for anyone in need.

@Reynolds556
Copy link

Nice work! Also, check out KeepVid for more amazing video-related tools.

@QiuChristine1025
Copy link

@deroverda
Copy link

Commands using Linux with ffmpeg to shrinking big MP4 video file to smaller sizes

  • ffmpeg -i input.mp4 -vcodec h264 -acodec mp2 out.mp4
    • 3.6 Gb to 556 Mb, great quality πŸ₯‡
  • ffmpeg -i input.mp4 -s 1280x720 -acodec copy -y output.mp4
    • 3.6 Gb to 62 Mb, quality "good enough"/acceptable πŸ‘
  • ffmpeg -i input.mp4 -vcodec h264 -b:v 1000k -acodec mp3 output.mp4
    • 3.6 Gb to 30 Mb, very shitty quality πŸ’©

Thanks for sharing, really helpful!

do these commands work just the same way on windows 10?

@Doraa789
Copy link

Doraa789 commented May 6, 2024

Thanks for sharing. I found that StreamFab can help you convert Netflix to MP4, then you can play them on most devices. You can learn more by https://streamfab.com/ .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment