EasyLottie

EasyLottie Guide

How to Convert MP4 to Lottie for Web and Apps

A planning guide for turning short video into a Lottie ZIP: what the output really contains, how to predict its size before you export, and which settings matter most.

By EasyLottie Editorial TeamReviewed 5 min readReport a correction
EasyLottie MP4 to Lottie converter after loading a green-screen clip of a bouncing gradient app icon, with crop handles and the Continue button
Step 1: the 4-second green-screen sticker loaded. Crop and trim happen before keying.
The keying step: the green background removed with the Green preset, showing the app icon and star on a transparent checkerboard, with tolerance, softness, despill, and choke sliders
Step 2: the Green preset removes the background. A faint green edge remains, which is what despill is for.
The finished Lottie ZIP playing on a transparent checkerboard, labeled 480 by 480 and 897 KB, with Download and Export another format buttons
Step 3: the rendered Lottie ZIP, 480 by 480, ready to download and test in a player.

What MP4 to Lottie really means

A normal MP4 is pixel video. A classic Lottie animation is vector data: shapes, paths, and keyframes. No browser tool can turn arbitrary footage into a small, editable vector Lottie with reliable quality, and tools that claim to are usually tracing outlines frame by frame with poor results.

The practical conversion is different. The converter decodes the video frame by frame, optionally removes a solid background, and writes the frames as images into a ZIP alongside a Lottie JSON that plays them in order. Any player that supports image assets can then treat the clip like any other Lottie: loop it, pause it, or trigger it from code. This is useful when your app already has a Lottie pipeline and the source material happens to be video, such as an AI-generated sticker or a short product shot.

Predict the output size before you export

Because every frame is stored, the size of a Lottie ZIP is close to frame count multiplied by the size of one frame. Frame count is duration multiplied by frame rate. Frame size depends on dimensions and on how much detail the picture has. The measured table above gives realistic per-frame figures at 480 pixels: about 1.6 KB for flat colors, about 2 KB for a typical UI clip, over 6 KB for detailed footage, and nearly 10 KB for a gradient subject with soft edges.

Use those numbers to sanity-check a plan. A 3-second loop at 24 fps is 72 frames. At UI-clip complexity that is roughly 140 KB, which is reasonable for an onboarding screen. A 10-second clip at 30 fps is 300 frames; at busy-footage complexity that is close to 2 MB, which is too heavy for most landing pages. When the arithmetic comes out large, the fix is almost always to cut duration and frame rate rather than to lower quality.

Quick planning arithmetic at 480 px long edge
ClipFramesRough Lottie ZIP size
2 s at 24 fps, flat sticker48about 75 KB
3 s at 24 fps, UI animation72about 140 KB
4 s at 12 fps, gradient sticker48about 460 KB
4 s at 24 fps, gradient sticker (measured)96918 KB
10 s at 30 fps, detailed footage300about 1.9 MB

Step-by-step conversion

The converter runs entirely in the browser. Decoding uses the WebCodecs API, keying runs on the GPU through WebGL2, and encoding happens locally. The source file is not uploaded.

  1. Open MP4 to Lottie and drop in an MP4, MOV, WebM, GIF, or a set of PNG, JPG, or WebP frames.
  2. Crop away anything outside the subject, then set in and out points. Trim to the shortest loop that still reads well.
  3. If the background is a solid color, pick it from the preview and tune tolerance, softness, despill, and choke. Skip this if the source already has transparency or you want to keep the background.
  4. Choose Lottie ZIP, set the long edge and frame rate, and export.
  5. Preview the result on the real page background, then test it in the player your app uses.

Choose settings for the destination

Pick dimensions for the largest size the animation will actually display at, multiplied by the device pixel ratio you care about. A 240-pixel slot on a 2x screen needs 480 pixels, not 1,080. Pick frame rate for the motion: UI transitions and stickers often look fine at 12 to 15 fps, while fast camera motion needs 24 or more.

If the destination is a web page that only needs a transparent video, compare a WebM export before choosing Lottie, and measure it on your own clip. In the September runs with flat, simple clips, WebM was about a tenth of the Lottie ZIP size. For the gradient sticker the result reversed: WebM was 1,215,389 bytes, 32 percent larger than the 918,089-byte Lottie ZIP, and it dropped four frames. The GIF was the largest at 1,316,183 bytes and supports only fully transparent or fully opaque pixels. The format comparison guide covers those tradeoffs in more detail.

Integrate the Lottie ZIP

Unzip the package and keep its folder structure. The JSON refers to each frame by a relative path, so flattening the folders or renaming images breaks playback. Serve the JSON and the image folder from the same base path, then load the JSON with your player as you would any Lottie.

Check memory on the lowest device you support. A player holds decoded frames in memory, and 300 frames at 480 by 480 is a lot more than a vector animation of the same length. For long or large clips, a native video element may simply be the better tool.

Quick checklist

  • Estimate frames and size before exporting: duration ร— fps ร— bytes per frame.
  • Trim to the shortest loop and crop to the subject.
  • Lower frame rate before lowering quality.
  • Key only when the background is a consistent solid color.
  • Size the output for the real display slot, not the source resolution.
  • Keep the ZIP's folder structure when integrating.

Reproduce the workflow

Use these local sample files to repeat the checks described in this guide. Review the file before using it in a production project.

Tested result: output size per frame, four sources

Every source was exported through the converter UI at the same settings: 480-pixel long edge, 24 fps, quality 0.7, full duration, 450-frame ceiling. The first three rows come from the September 9, 2026 measurement run in Chrome 152 on desktop macOS; the gradient sticker was measured on October 11, 2026 in the same way. All rows are Lottie ZIP output.

Measured results from the downloadable test files
SourceLottie ZIP outputBytes per frame
Green-screen shape, 4 s, 480ร—480, flat colors153,023 bytes, 96 framesabout 1,590
UI animation, 4 s, 480ร—270187,773 bytes, 96 framesabout 1,960
60 fps test pattern, 15 s, 480ร—270, busy detail2,279,886 bytes, 360 framesabout 6,330
Gradient sticker, 4 s, 480ร—480, keyed918,089 bytes, 96 framesabout 9,560

Frame count is set by duration times frame rate, and size is roughly frame count times bytes per frame. Bytes per frame depend on the picture: flat shapes compress well, while gradients, soft edges, and detail do not. The gradient sticker cost six times more per frame than the flat shape at the same resolution.

The 15-second, 60 fps source did not produce 900 frames. The requested 24 fps gave 360 frames, inside the 450-frame ceiling. Lowering frame rate is the single cheapest size reduction, because it removes frames instead of shrinking them.

Know the limits

  • Video becomes a sequence of raster images inside the Lottie package. It does not become editable vector shapes, and it will not scale up sharply.
  • Size is not guaranteed to be smaller than the source MP4. Our 104,074-byte sticker MP4 became a 918,089-byte Lottie ZIP, because video codecs store differences between frames and image sequences store every frame.
  • WebM export records frames in real time in the browser, which can drop frames. The sticker's WebM kept 92 of 96 frames; in the September runs, two sources kept 81 and 74 of 96.
  • Codec support depends on the browser. HEVC or H.265 MP4 files may not decode; re-export as H.264 first.
  • Inputs are limited to 100 MB, output to a 15-second selection, 450 frames, and a 1,920-pixel long edge.

If your result is different

  1. 1.If the source will not load, check the codec. Re-export it as H.264 MP4 and try again; renaming the file does not change the codec.
  2. 2.If the output is too large, reduce in this order: duration, frame rate, then dimensions. Each halving of frame rate roughly halves the frame count.
  3. 3.If keyed edges look green on the target page, preview on the real background color and increase despill before increasing tolerance.
  4. 4.If a Lottie player shows nothing, unzip the package without flattening folders. The JSON references images by relative path.

Frequently asked questions

Can MP4 become a true vector Lottie?

Not automatically with reliable quality. The converter produces an image-sequence Lottie: real frames in a Lottie-compatible package. For vector output, rebuild the animation from vector artwork.

Why is my Lottie ZIP much larger than the MP4?

Video codecs store mostly the differences between frames, while an image sequence stores every frame. Our 104,074-byte sticker MP4 became 918,089 bytes as a Lottie ZIP. Cut duration and frame rate to bring it down.

What frame rate should I use?

As low as the motion allows. Stickers and UI transitions often work at 12 to 15 fps; fast motion needs 24 or more. Halving the frame rate roughly halves the file.

Are videos uploaded?

No. Decoding, keying, and encoding run in your browser. Only optional cloud sync or share links upload the result you choose.

Should I use WebM instead?

Test both. WebM was about a tenth of the Lottie ZIP size for flat clips in our September runs, but 32 percent larger for a gradient sticker in October. Use Lottie when your app already plays Lottie and needs to control the clip like any other animation.

Primary sources

Technical behavior was checked against the original runtime or format documentation below.