Initializing... drag & drop files here
Supports: JPG, JPEG, JFIF
WebM is Google's open-source video container (Matroska-based) paired with the royalty-free VP8 or VP9 codecs. Turning JPEG images into a WebM video gives you a single playable file that streams through the HTML5 <video> tag, loops cleanly, and survives platform compression better than re-uploading a stack of JPGs. Reasons people make this conversion:
.webm with VP9, one dimension exactly 512 px, duration up to 3 s, file size up to 256 KB, no audio, and up to 30 FPS. A single JPEG with a 3 s duration encoded to VP9 at 512x512 hits all of those targets.| Property | WebM (VP9) | MP4 (H.264) | Animated GIF |
|---|---|---|---|
| Container size for a 5 s slideshow | Smallest (VP9 lossy) | Slightly larger | 5-10x larger |
| Color depth | 24-bit (16.7M) | 24-bit | 8-bit (256 max) |
| Transparency / alpha | Yes (VP9 alpha) | No | 1-bit only |
| Audio track allowed | Yes (Vorbis / Opus) | Yes (AAC) | No |
| Royalties / licensing | Free, open-source | H.264 patent pool | Free |
HTML5 <video> support |
Chrome 25+, Firefox 28+, Edge 79+, Safari 14.1+ | All browsers | Native <img> |
| Telegram video sticker | Required format | Not accepted | Not accepted |
| GitHub issue/PR inline play | Yes | Yes | Yes |
| Setting | Use it when | Notes |
|---|---|---|
| VP9 codec | Default; smaller files at the same quality | Required for Telegram stickers and AV1-adjacent quality |
| VP8 codec | Targeting Safari 11-14, older Android 4.x, or WebKit forks | Larger files; widest legacy decoder support |
| Constant Quality (CRF) | You want consistent visual quality, don't care about exact size | CRF 31-35 is a good slideshow range for VP9 |
| Constraint Quality | Cap the worst-case quality drop while bounding bitrate | Useful for live-streaming-style encodes |
| Target file size % | Hitting a hard cap (Telegram 256 KB, Discord 10 MB) | XConvert iterates the bitrate to hit the target |
| Constant Bitrate | You need predictable network usage | Less efficient than CRF for static slideshows |
| Requirement | Value |
|---|---|
| Container | .webm |
| Codec | VP9 |
| One side dimension | Exactly 512 px |
| Duration | Up to 3 s |
| Max file size | 256 KB |
| Max FPS | 30 |
| Audio | None (must be removed) |
For a single-image sticker, upload one JPEG, set Image Duration to 3 seconds, choose VP9, set Fixed Resolution to 512x512, pick Constant Quality (CRF) and lower the quality until output sits under 256 KB.
WebM gives you motion, looping, and per-frame timing control that a still JPEG can't. It also lets you bundle multiple JPEGs into one file, which is faster to load (one HTTP request) and easier for the browser to cache than five separate images. For Telegram and Discord stickers, WebM is the only animated-image-without-GIF format the platforms accept.
Safari has supported WebM since version 14.1 (April 26, 2021) on macOS Big Sur 11.3 and later, and on iOS 14.5. Both VP8 and VP9 streams play. Older Safari versions on macOS Catalina/Mojave and iOS 14.4 or lower won't play the file — for those audiences, consider JPEG to MP4 instead.
WebM is a video container; the spec requires at least one timestamped frame. Setting Image Duration tells the encoder how long to hold that frame on screen. The minimum you can pick on XConvert is 1/60 s (effectively a single-frame video that loops instantly); the maximum is 10 s per frame.
Upload one JPEG, set Image Duration to 3 seconds, Video Codec to VP9, Video Resolution to Fixed 512x512, File Compression to Constant Quality, and pick a CRF that puts the file under 256 KB (usually CRF 30-40 for a single still). Telegram also requires the sticker to have no audio — image-to-WebM conversion is silent by default, so nothing to remove.
Yes. The XConvert dropzone accepts JPG, JPEG, JFIF, PNG, and WebP simultaneously when the output is WebM. If your inputs have different aspect ratios, set a Background Color so the encoder has a defined fill for letterboxed regions. For pure PNG input, PNG to WebM skips the chroma subsampling step entirely.
VP9 typically produces 25-50% smaller files than VP8 at the same visual quality (Google's published benchmarks). VP8 hardware decoders are universal across Android 4.x+ and Safari 14.1+; VP9 hardware decode is present on Android 5+, Safari 14.1+ (software), Chrome, Firefox, and Edge. For static-image slideshows the size difference is smaller than for live video, but VP9 is still the default unless you're targeting a legacy WebKit fork.
WebM itself doesn't carry a "loop" flag — looping is set by the player. In HTML5: <video loop autoplay muted playsinline>. Telegram, Discord, and Twitter all loop video stickers automatically. CSS background-video patterns also loop by default. The WebM file produced by XConvert is just the encoded frames; the playback environment decides loop behavior.
Not from the converter directly — input is a JPEG, which has no audio track. To produce a WebM with background music, convert your JPEGs to WebM here first, then mux audio using a video editor or ffmpeg (-c:v copy -c:a libopus). Telegram and animated-sticker contexts explicitly require no audio, so for stickers leave it muted.
Set File Compression to "Target file size %" or "Target file size (exact)" and enter your cap. XConvert will iterate the encoder bitrate to land near the target. For very tight caps (Telegram's 256 KB), also reduce resolution to 512x512, drop FPS to 24 or lower, and shorten the slideshow. If you've already produced an oversized WebM elsewhere, Compress WebM can re-encode it down without changing format.