# gif2webp

## 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

- Please report all bugs to our issue tracker: <https://issues.webmproject.org>

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

## 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](mailto:urvang@google.com), for the
Debian project (and may be used by others).