GIF2WEBP(1)

πŸ“¦
version 1.6.0 Β· 3 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– GIF2WEBP(1) β€” bestie, we're converting GIFs today πŸ’–

okay so this is the manual page for gif2webp, living in section 1 of the General Commands Manual, and honestly? it's giving "tiny tool, huge main character energy" ✨


🌸 NAME 🌸

gif2webp β€” convert a GIF image to WebP. that's it, that's the whole job, and she does it flawlessly πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

gif2webp [options] input_file.gif -o output_file.webp

✨ DESCRIPTION ✨

This manual page documents the gif2webp command. yes bestie, you're literally reading the documentation right now, you're doing amazing 🫢

gif2webp converts a GIF image to a WebP image. glow-up complete. no cap. 🌈


πŸ’… OPTIONS πŸ’…

The basic options are, and I need you to stay with me because there are a LOT of them and every single one matters:

  • -o string β€” name your output WebP file right here. If you skip it, gif2webp will still do the conversion but will only report statistics (so basically it does the work and tells you about it, but keeps the file to itself πŸ™ˆ). And if you use "-" as the output name, the output goes straight to stdout.
  • -- string β€” this one explicitly specifies the input file. super useful when your input file starts with a -, which, rude. This option must appear last. Any other options after it will be ignored, periodt. And if the input file is "-", the data gets read from stdin instead of from a file.
  • -h, -help β€” usage information. the "help me bestie" flag πŸŽ€
  • -version β€” print the version number (as major.minor.revision) and exit. short and iconic.
  • -lossy β€” encode the image using lossy compression.
  • -mixed β€” mixed compression mode: optimize compression of the image by picking either lossy or lossless compression for each frame heuristically. she's indecisive in the most efficient way possible ✨
  • -near_lossless int β€” specify the level of near-lossless image preprocessing. This option adjusts pixel values to help compressibility, but has minimal impact on the visual quality. It triggers lossless compression mode automatically. The range is 0 (maximum preprocessing) to 100 (no preprocessing, the default). The typical value is around 60. Note that lossy with -q 100 can at times yield better results.
  • -sharp_yuv β€” use more accurate and sharper RGB->YUV conversion. Note that this process is slower than the default 'fast' RGB->YUV conversion. sharper pixels, slower vibes 😭
  • -q float β€” specify the compression factor for RGB channels between 0 and 100. The default is 75.
    • In case of lossless compression (default), a small factor enables faster compression speed, but produces a larger file. Maximum compression is achieved by using a value of 100.
    • In case of lossy compression (specified by the -lossy option), a small factor produces a smaller file with lower quality. Best quality is achieved by using a value of 100.
  • -m int β€” specify the compression method to use. This parameter controls the trade off between encoding speed and the compressed file size and quality. Possible values range from 0 to 6. Default value is 4. When higher values are used, the encoder will spend more time inspecting additional encoding possibilities and decide on the quality gain. Lower value can result is faster processing time at the expense of larger file size and lower compression quality. (yes, "can result is" β€” that's what the manpage says, I don't make the rules πŸ’€)
  • -min_size β€” encode image to achieve smallest size. This disables key frame insertion and picks the dispose method resulting in the smallest output for each frame. It uses lossless compression by default, but can be combined with -q, -m, -lossy or -mixed options. tiny file, big slay 🐜
  • -kmin int and -kmax int β€” specify the minimum and maximum distance between consecutive key frames (independently decodable frames) in the output animation. The tool will insert some key frames into the output animation as needed so that this criteria is satisfied.
    • A 'kmax' value of 0 will turn off insertion of key frames. A 'kmax' value of 1 will result in all frames being key frames. 'kmin' value is not taken into account in both these special cases. Typical values are in the range 3 to 30. Default values are kmin = 9, kmax = 17 for lossless compression and kmin = 3, kmax = 5 for lossy compression.
    • These two options are relevant only for animated images with large number of frames (>50).
    • When lower values are used, more frames will be converted to key frames. This may lead to smaller number of frames required to decode a frame on average, thereby improving the decoding performance. But this may lead to slightly bigger file sizes. Higher values may lead to worse decoding performance, but smaller file sizes.
    • Some restrictions:
      1. kmin < kmax,
      2. kmin >= kmax / 2 + 1 and
      3. kmax - kmin <= 30.
    • If any of these restrictions are not met, they will be enforced automatically. she does not ask, she enforces πŸ’…
  • -metadata string β€” a comma separated list of metadata to copy from the input to the output if present. Valid values: all, none, icc, xmp. The default is xmp.
  • -f int β€” for lossy encoding only (specified by the -lossy option). Specify the strength of the deblocking filter, between 0 (no filtering) and 100 (maximum filtering). A value of 0 will turn off any filtering. Higher value will increase the strength of the filtering process applied after decoding the picture. The higher the value the smoother the picture will appear. Typical values are usually in the range of 20 to 50. smooth operator fr fr 🧈
  • -mt β€” use multi-threading for encoding, if possible. many threads, one queen πŸ‘‘
  • -loop_compatibility β€” if enabled, handle the loop information in a compatible fashion for Chrome version prior to M62 (inclusive) and Firefox. throwback compatibility, we love to see it πŸ•°οΈ
  • -v β€” print extra information. she's chatty today πŸ—£οΈ
  • -quiet β€” do not print anything. she's giving nothing and honestly? respected. 🀐

🚦 EXIT STATUS 🚦

If there were no problems during execution, gif2webp exits with the value of the C constant EXIT_SUCCESS. This is usually zero. slay, no notes πŸ’š

If an error occurs, gif2webp exits with the value of the C constant EXIT_FAILURE. This is usually one. we don't talk about that one 😭


🌟 EXAMPLES 🌟

here's the vibe check, all copied exactly because these are sacred:

gif2webp picture.gif -o picture.webp
gif2webp -q 70 picture.gif -o picture.webp
gif2webp -lossy -m 3 picture.gif -o picture_lossy.webp
gif2webp -lossy -f 50 picture.gif -o picture.webp
gif2webp -q 70 -o picture.webp -- ---picture.gif
cat picture.gif | gif2webp -o - -- - > output.webp

that last one is piping a GIF in through stdin and out through stdout and it is highkey iconic 🌈


πŸ’œ AUTHORS πŸ’œ

gif2webp is a part of libwebp and was written by the WebP team. The latest source tree is available at https://chromium.googlesource.com/webm/libwebp

This manual page was written by Urvang Joshi <urvang@google.com>, for the Debian project (and may be used by others). thank you Urvang, we owe you everything 🫢


πŸ› REPORTING BUGS πŸ›

Please report all bugs to the issue tracker: https://issues.webmproject.org

Patches welcome! See this page to get started: https://www.webmproject.org/code/contribute/submitting-patches/

bestie if you find a bug, tell them. if you can fix a bug, even better. community is the whole point πŸ’–

πŸ‘€ SEE ALSO πŸ‘€

cwebp(1), dwebp(1), webpmux(1)

Please refer to https://developers.google.com/speed/webp/ for additional information.


okay that's the whole page!! and before you go β€” this manual page is from November 4, 2024, so if you're reading this way in the future, hi, hope the WebP format is still thriving πŸ’– go convert some GIFs, you absolute legend πŸŽ€βœ¨πŸ¦‹