DEV Community

Anwar
Anwar

Posted on

How do you compress mp4 videos?

Do you guys have a good online tool, command line tool or a Node.JS library to compress videos?

I would like to put a video I made today on a customer website, but I filmed it in 4k so for 15 sec. it weights 44MB 😂

The best tool that I am looking for would:

  • Trim useless bytes
  • Create variants by size (like 600x?, 980x?, 1200x?, 1920x?) with the ability to choose the sizes
  • Create a webm counterpart of the video (not necessary, but appreciated)

Anyone?

Top comments (6)

Collapse
 
iameugn profile image
imeugn

I will suggest ffmpeg as well. But there are some challenges, I think:

  1. It is slow. There is a bottleneck problem, which has not been quite resolved yet. Multithreading definitely helps though.
  2. Webm is not the best friend of ffmpeg. I had personally some problems with ffmpeg and webm. But for one video, it would suffice.
Collapse
 
anwar_nairi profile image
Anwar

I agree on both points, just ran ffmpeg to first resize my videos, it was quite slow, but I ask myself such a good tool might come with a cost.

Also, I struggled with the -crf ffmpeg option to make my webm version keep a good visual quality and reducing the weight (came up with a crf of 40 which divide the original video size by apoximatively 2, and a slight lesser quality but it is fine.

I really would have appreciated a Node.JS library for that 😁

Collapse
 
iameugn profile image
imeugn

I know, what you mean. But there some other approaches, I have seen, that might be getting better and better. Rust, Matlab, Scala etc.
If I am not mistaken, there is a half baked solution for Julia as well. I would still go for ffmpeg for the moment. It is the more complete solution, we have

Thread Thread
 
anwar_nairi profile image
Anwar

Good to know there is other languages on the way, thank you for your inputs!

Collapse
 
shindakun profile image
Steve Layton

ffmpeg is probably the best choice. You can even configure it to output multiple files, trac.ffmpeg.org/wiki/Creating%20mu....

Collapse
 
anwar_nairi profile image
Anwar

I guess it is the best way to achieve image resizing and converting to webm, thank you!