gif2webp
Stay organized with collections
Save and categorize content based on your preferences.
Name
gif2webp
-- Convert a GIF image to WebP
Synopsis
gif2webp [options] input_file.gif -o output_file.webp
Description
gif2webp
converts a GIF image to a WebP image.
Options
The basic options are:
-o string
- Specify the name of the output WebP file. If omitted,
gif2webp
will
perform conversion but only report statistics.
Using "-" as output name will direct output to 'stdout'.
-- string
- Explicitly specify the input file. This option is useful if the input
file starts with an "-" for instance. This option must appear last.
Any other options afterward will be ignored. If the input file is "-",
the data will be read from 'stdin' instead of a file.
-h, -help
- Usage information
-version
- Print the version number (as major.minor.revision) and exit.
-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.
-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
.
-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.
-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 in faster processing time at the expense of larger file size and
lower compression quality.
-kmin int
, -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:
- kmin < kmax,
- kmin >= kmax / 2 + 1; and
- kmax - kmin <= 30.
If any of these restrictions are not met, they will be enforced
automatically.
-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
.
-mt
Use multi-threading for encoding, if possible.
-loop_compatibility
If enabled, handle the loop information in a compatible fashion for Chrome
version prior to M62 (inclusive) and Firefox.
-v
Print extra information.
-quiet
Do not print anything.
Bugs
Examples
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 -min_size -q 30 -o picture.webp -- ---picture.gif
cat picture.gif | gif2webp -o - -- - > output.webp
Authors
gif2webp
is 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).
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-07 UTC.
[null,null,["Last updated 2025-08-07 UTC."],[[["\u003cp\u003e\u003ccode\u003egif2webp\u003c/code\u003e is a command-line tool used to convert GIF images to the WebP format, potentially offering better compression and quality.\u003c/p\u003e\n"],["\u003cp\u003eUsers can adjust compression parameters like quality (\u003ccode\u003e-q\u003c/code\u003e), lossy/lossless encoding (\u003ccode\u003e-lossy\u003c/code\u003e, \u003ccode\u003e-lossless\u003c/code\u003e), and methods (\u003ccode\u003e-m\u003c/code\u003e) for customized output.\u003c/p\u003e\n"],["\u003cp\u003eAdvanced options allow control over key frames (\u003ccode\u003e-kmin\u003c/code\u003e, \u003ccode\u003e-kmax\u003c/code\u003e), metadata handling (\u003ccode\u003e-metadata\u003c/code\u003e), and deblocking filter (\u003ccode\u003e-f\u003c/code\u003e) for fine-tuning.\u003c/p\u003e\n"],["\u003cp\u003eThe tool supports multi-threading (\u003ccode\u003e-mt\u003c/code\u003e) and offers options for compatibility with older browsers (\u003ccode\u003e-loop_compatibility\u003c/code\u003e) and controlling output verbosity (\u003ccode\u003e-v\u003c/code\u003e, \u003ccode\u003e-quiet\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eDetailed usage instructions, including examples and bug reporting information, are provided in the documentation.\u003c/p\u003e\n"]]],["`gif2webp` converts GIF images to WebP format using the command `gif2webp [options] input_file.gif -o output_file.webp`. Key actions include specifying output file names (`-o`), setting compression quality (`-q`), choosing between lossy (`-lossy`) or mixed (`-mixed`) compression, optimizing for minimum size (`-min_size`), adjusting compression methods (`-m`), and setting keyframe intervals (`-kmin`, `-kmax`). Multi-threading (`-mt`) and metadata copying (`-metadata`) are also available. The tool also support standard input and output redirection.\n"],null,["# gif2webp\n\nName\n----\n\n`gif2webp` -- Convert a GIF image to WebP\n\nSynopsis\n--------\n\n`gif2webp [options] input_file.gif -o output_file.webp`\n\nDescription\n-----------\n\n`gif2webp` converts a GIF image to a WebP image.\n\nOptions\n-------\n\nThe basic options are:\n\n`-o string`\n: Specify the name of the output WebP file. If omitted, `gif2webp` will\n perform conversion but only report statistics.\n Using \"-\" as output name will direct output to 'stdout'.\n\n`-- string`\n: Explicitly specify the input file. This option is useful if the input\n file starts with an \"-\" for instance. This option must appear **last**.\n Any other options afterward will be ignored. If the input file is \"-\",\n the data will be read from 'stdin' instead of a file.\n\n`-h, -help`\n: Usage information\n\n`-version`\n: Print the version number (as major.minor.revision) and exit.\n\n`-lossy`\n: Encode the image using lossy compression.\n\n`-mixed`\n: Mixed compression mode: optimize compression of the image by picking\n either lossy or lossless compression for each frame heuristically.\n\n`-q float`\n: Specify the compression factor for RGB channels between `0` and `100`. The\n default is `75`. In case of lossless compression (default), a small factor\n enables faster compression speed, but produces a larger file. Maximum\n compression is achieved by using a value of `100`. In case of lossy\n compression (specified by the -lossy option), a small factor produces a\n smaller file with lower quality. Best quality is achieved by using a value\n of `100`.\n\n`-min_size`\n: Encode image to achieve smallest size. This disables key frame insertion and\n picks the dispose method resulting in the smallest output for each frame. It\n uses lossless compression by default, but can be combined with `-q`, `-m`,\n `-lossy` or `-mixed` options.\n\n`-m int`\n: Specify the compression method to use. This parameter controls the trade\n off between encoding speed and the compressed file size and quality.\n Possible values range from `0` to `6`. Default value is `4`. When higher\n values are used, the encoder will spend more time inspecting additional\n encoding possibilities and decide on the quality gain. Lower value can\n result in faster processing time at the expense of larger file size and\n lower compression quality.\n\n`-kmin int`, `-kmax int`\n\n: Specify the minimum and maximum distance between consecutive key frames\n (independently decodable frames) in the output animation. The tool will\n insert some key frames into the output animation as needed so that this\n criteria is satisfied.\n\n A `kmax` value of `0` will turn off insertion of key frames. A `kmax` value\n of `1` will result in all frames being key frames. `kmin` value is not\n taken into account in both these special cases. Typical values are in the\n range `3` to `30`. Default values are `kmin` = `9`, `kmax` = `17` for\n lossless compression and `kmin` = `3`, `kmax` = `5` for lossy compression.\n\n These two options are relevant only for animated images with large number\n of frames (\\\u003e50).\n\n When lower values are used, more frames will be converted to key frames.\n This may lead to smaller number of frames required to decode a frame on\n average, thereby improving the decoding performance. But this may lead to\n slightly bigger file sizes. Higher values may lead to worse decoding\n performance, but smaller file sizes.\n\n Some restrictions:\n\n - kmin \\\u003c kmax,\n - kmin \\\u003e= kmax / 2 + 1; and\n - kmax - kmin \\\u003c= 30.\n\n If any of these restrictions are not met, they will be enforced\n automatically.\n\n`-metadata string`\n\n: A comma separated list of metadata to copy from the input to the output if\n present. Valid values: `all`, `none`, `icc`, `xmp`. The default is `xmp`.\n\n`-f int`\n\n: For lossy encoding only (specified by the `-lossy` option). Specify the\n strength of the deblocking filter, between `0` (no filtering) and `100`\n (maximum filtering). A value of `0` will turn off any filtering. Higher\n value will increase the strength of the filtering process applied after\n decoding the picture. The higher the value the smoother the picture will\n appear. Typical values are usually in the range of `20` to `50`.\n\n`-mt`\n\n: Use multi-threading for encoding, if possible.\n\n`-loop_compatibility`\n\n: If enabled, handle the loop information in a compatible fashion for Chrome\n version prior to M62 (inclusive) and Firefox.\n\n`-v`\n\n: Print extra information.\n\n`-quiet`\n\n: Do not print anything.\n\nBugs\n----\n\n- Please report all bugs to our issue tracker: \u003chttps://issues.webmproject.org\u003e\n\n- Patches welcome! See this page to get started: \u003chttps://www.webmproject.org/code/contribute/submitting-patches/\u003e\n\nExamples\n--------\n\n gif2webp picture.gif -o picture.webp\n gif2webp -q 70 picture.gif -o picture.webp\n gif2webp -lossy -m 3 picture.gif -o picture_lossy.webp\n gif2webp -lossy -f 50 picture.gif -o picture.webp\n gif2webp -min_size -q 30 -o picture.webp -- ---picture.gif\n cat picture.gif | gif2webp -o - -- - \u003e output.webp\n\nAuthors\n-------\n\n`gif2webp` is part of `libwebp`, and was written by the WebP team.\nThe latest source tree is available at\n\u003chttps://chromium.googlesource.com/webm/libwebp/\u003e\n\nThis manual page was written by Urvang Joshi [urvang@google.com](mailto:urvang@google.com), for the\nDebian project (and may be used by others)."]]