I suppose ffmpeg is the weapon of choice but I didn't find out how to reach my goal.


From here:

ffmpeg -i input.webm -pix_fmt rgb24 output.gif
  • 4
    Wow! It works! AND.. 2.6 MB webm -> 48 MB gif ^^ -- any thought to reduce this?
    – brubaker
    Aug 4 '14 at 11:47
  • 6
    gifsicle is a fantastic tool to reduce gif size gifsicle -O2 input.gif -o output.gif
    – kenn
    Aug 4 '14 at 11:52
  • 1
    @BarafuAlbino Thanks buddy, but I got an error: "Unknown pixel format requested: rgb16."
    – brubaker
    Aug 4 '14 at 12:01
  • 3
    @brubaker I think I got you beat: 120K .webm → 2.7G .gif. Yes, that's with a G.
    – wchargin
    Nov 1 '15 at 23:19
  • 5
    rgb24 is not supported for gif, ffmpeg would use rgb8 instead automatically. Jan 22 '17 at 8:59

Barafu's answer is alright. But, the resulting gif may have color conversion issue as ffmpeg complains on Incompatible pixel format 'rgb24' for codec 'gif'. Here is what I find works:

First, create PNG Palette:

ffmpeg -y -i input.webm -vf palettegen palette.png

Then, use the palette to produce gif:

ffmpeg -y -i input.webm -i palette.png -filter_complex paletteuse -r 10 output.gif


Covert MP4/Webm - ubuntubuzz.com

  • 2
    produced a much better result in my case than the accepted answer
    – Eugene
    Jul 15 '19 at 9:42
  • Confirmed that this also works on Windows 10😂
    – Lok
    Jun 16 at 20:13

Extending Raynal's answer, here's a script one can add to .bashrc to do the conversion:

function webm2gif() {
    ffmpeg -y -i $1 -vf palettegen _tmp_palette.png
    ffmpeg -y -i $1 -i _tmp_palette.png -filter_complex paletteuse -r 10  ${1%.webm}.gif
    rm _tmp_palette.png


webm2gif recording.webm

will create recording.gif.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.