WEBPMUX(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

✨ WEBPMUX ✨

okay bestie, welcome to webpmux β€” it's the libwebp multitool and honestly it's giving main character energy. Let's get into it. 🫢


🌸 NAME 🌸

webpmux β€” create animated WebP files from non-animated WebP images, extract frames from animated WebP images, and manage XMP/EXIF metadata and ICC profile. yes she does all of that. no cap. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

webpmux -get GET_OPTIONS INPUT -o OUTPUT
webpmux -set SET_OPTIONS INPUT -o OUTPUT
webpmux -strip STRIP_OPTIONS INPUT -o OUTPUT
webpmux -frame FRAME_OPTIONS [ -frame ... ] [ -loop LOOP_COUNT ]
        [ -bgcolor BACKGROUND_COLOR ] -o OUTPUT
webpmux -duration DURATION OPTIONS [ -duration ... ] INPUT -o OUTPUT
webpmux -info INPUT
webpmux [-h|-help]
webpmux -version
webpmux argument_file_name

πŸ¦‹ DESCRIPTION πŸ¦‹

This manual page documents the webpmux command. consider yourself documented, bestie. πŸ’–

webpmux can be used to create/extract from animated WebP files, as well as to add/extract/strip XMP/EXIF metadata and ICC profile.

And here's the sneaky little trick you're gonna be obsessed with: if a single file name (not starting with the character -) is supplied as the argument, the command line arguments are actually tokenized from this file. It's giving "argument file" realness. This allows for easy scripting or using a large number of arguments. iconique. 🌈


πŸ’… OPTIONS πŸ’…

⭐ GET_OPTIONS (-get):

  • icc β€” Get ICC profile. 🎨
  • exif β€” Get EXIF metadata. πŸ“Έ
  • xmp β€” Get XMP metadata. πŸ“
  • frame n β€” Get nth frame from an animated image. (n = 0 has a special meaning: last frame). not me loving that 0 means last πŸ’€

⭐ SET_OPTIONS (-set)

  • loop loop_count β€” Set loop count on an animated file.

Where: loop_count must be in range [0, 65535]. ⏳

  • bgcolor A,R,G,B β€” Set the background color of the canvas on an animated file.

where: A, R, G and B are integers in the range 0 to 255 specifying the Alpha, Red, Green and Blue component values respectively. 🌈

  • icc file.icc β€” Set ICC profile.

Where: file.icc contains the ICC profile to be set.

  • exif file.exif β€” Set EXIF metadata.

Where: file.exif contains the EXIF metadata to be set.

  • xmp file.xmp β€” Set XMP metadata.

Where: file.xmp contains the XMP metadata to be set.

⭐ STRIP_OPTIONS (-strip)

  • icc β€” Strip ICC profile. bye bestie πŸ‘‹
  • exif β€” Strip EXIF metadata. bye πŸ‘‹
  • xmp β€” Strip XMP metadata. bye πŸ‘‹

⭐ DURATION_OPTIONS (-duration)

Amend the duration of a specific interval of frames. This option is only effective on animated WebP and has no effect on a single-frame file. fr fr, don't come crying to me when nothing happens on your still image. 😭

  • duration[,start[,end]] β€” Where:
    • duration is the duration for the interval in milliseconds (mandatory). Must be non-negative.
    • start is the starting frame index of the interval (optional).
    • end is the ending frame index (inclusive) of the interval (optional).

The three typical usages of this option are:

  • -duration d
    • set the duration to d for the whole animation.
  • -duration d,f
    • set the duration of frame f to d.
  • -duration d,start,end
    • set the duration to d for the whole [start,end] interval.

Note that the frames outside of the [start, end] interval will remain untouched. so respectful. πŸ’œ

The end value 0 has the special meaning 'last frame of the animation'. (same energy as the frame 0 thing earlier, iykyk ✨)

Reminder: frame indexing starts at 1. NOT zero. not me making that mistake for an hour πŸ™ˆ

⭐ FRAME_OPTIONS (-frame)

Create an animated WebP file from multiple (non-animated) WebP images. glow-up time. 🧚

  • file_i +di[+xi+yi[+mi[bi]]] β€” Where:

file_i is the i'th frame (WebP format), xi,yi specify the image offset for this frame, di is the pause duration before next frame, mi is the dispose method for this frame (0 for NONE or 1 for BACKGROUND) and bi is the blending method for this frame (+b for BLEND or -b for NO_BLEND).

Argument bi can be omitted and will default to +b (BLEND). Also, mi can be omitted if bi is omitted and will default to 0 (NONE). Finally, if mi and bi are omitted then xi and yi can be omitted and will default to +0+0. nesting defaults like russian dolls, we love to see it πŸŽ€

  • -loop n β€” Loop the frames n number of times. 0 indicates the frames should loop forever. Valid range is 0 to 65535 [Default: 0 (infinite)]. ♾️
  • -bgcolor A,R,G,B β€” Background color of the canvas.

where: A, R, G and B are integers in the range 0 to 255 specifying the Alpha, Red, Green and Blue component values respectively [Default: 255,255,255,255]. 🀍

⭐ INPUT

Input file in WebP format. πŸ“₯

⭐ OUTPUT (-o)

Output file in WebP format. πŸ“€

⭐ Note:

The nature of EXIF, XMP and ICC data is not checked and is assumed to be valid. so like... she trusts you. don't betray her. πŸ’€


πŸ‘‘ EXIT STATUS πŸ‘‘

If there were no problems during execution, webpmux exits with the value of the C constant EXIT_SUCCESS. This is usually zero. slay, zero, we love a zero. ✨

If an error occurs, webpmux exits with the value of the C constant EXIT_FAILURE. This is usually one. 😭


πŸ’– EXAMPLES πŸ’–

Add ICC profile:

webpmux -set icc image_profile.icc in.webp -o icc_container.webp

Extract ICC profile:

webpmux -get icc icc_container.webp -o image_profile.icc

Strip ICC profile:

webpmux -strip icc icc_container.webp -o without_icc.webp

Add XMP metadata:

webpmux -set xmp image_metadata.xmp in.webp -o xmp_container.webp

Extract XMP metadata:

webpmux -get xmp xmp_container.webp -o image_metadata.xmp

Strip XMP metadata:

webpmux -strip xmp xmp_container.webp -o without_xmp.webp

Add EXIF metadata:

webpmux -set exif image_metadata.exif in.webp -o exif_container.webp

Extract EXIF metadata:

webpmux -get exif exif_container.webp -o image_metadata.exif

Strip EXIF metadata:

webpmux -strip exif exif_container.webp -o without_exif.webp

Create an animated WebP file from 3 (non-animated) WebP images:

webpmux -frame 1.webp +100 -frame 2.webp +100+50+50
        -frame 3.webp +100+50+50+1+b -loop 10 -bgcolor 255,255,255,255
        -o anim_container.webp

Get the 2nd frame from an animated WebP file:

webpmux -get frame 2 anim_container.webp -o frame_2.webp

Using -get/-set/-strip with input file name starting with -:

webpmux -set icc image_profile.icc -o icc_container.webp -- ---in.webp
webpmux -get icc -o image_profile.icc -- ---icc_container.webp
webpmux -strip icc -o without_icc.webp -- ---icc_container.webp

🫢 AUTHORS 🫢

webpmux 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 Vikas Arora <vikaas.arora@gmail.com>, for the Debian project (and may be used by others). thank you vikas, you ate. πŸ’…


🌸 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 found a bug, tell them, don't just suffer in silence 😭

🌈 SEE ALSO 🌈

cwebp(1), dwebp(1), gif2webp(1)

Please refer to https://developers.google.com/speed/webp/ for additional information. go read, it's worth it ⭐


and that's the whole page, bestie β€” this was WEBPMUX(1) from the General Commands Manual, dated July 18, 2024. periodt. πŸ’–βœ¨πŸŽ€πŸ¦‹