Skip to main content

MP4 to Lottie Converter

Convert video clips (MP4, WebM, MOV) to Lottie JSON. Choose your clip range, FPS, and output quality. 100% client-side — your video never leaves your device.

Upload Video

Click to upload or drag and drop

MP4, WebM, MOV, OGG (max 200MB)

No video uploaded

Upload a video to convert it to Lottie JSON

What is MP4 to Lottie?

Lottie is the standard JSON animation format for iOS, Android, React Native, and web. Converting a video clip to Lottie lets you embed short animations directly in your app or website without shipping a video file, and gives you full programmatic playback control.

This tool extracts frames from your video at the FPS you choose, compresses them as WebP or JPEG, and assembles a standard Lottie v5 JSON ready for any Lottie player.

How it works

  1. Video is loaded in a browser video element
  2. Each frame is captured via canvas seek at your chosen FPS
  3. Frames are encoded as WebP or JPEG with your quality setting
  4. Identical frames are deduplicated to reduce file size
  5. A Lottie v5 JSON is assembled with embedded assets

Tips for best results

  • Keep clips short — at 10 fps, you get up to 30 seconds; at 15 fps, up to 20 seconds.
  • Lower FPS for UI animations — 8–10 fps is often enough for loaders, transitions, and icon animations.
  • Use a max width of 320–480px — most Lottie animations display small; original video resolution makes the JSON huge.
  • WebP at 80–85% delivers visually lossless frames at a fraction of PNG size.
  • Trim first — upload only the section you need; fewer frames = much smaller JSON.

Frequently asked questions

What video formats are supported?

MP4, WebM, MOV (QuickTime), and OGG video are supported. MP4 (H.264) has the widest browser support and is recommended.

Is my video uploaded to a server?

No. All processing happens entirely in your browser. Your video is never sent anywhere, so it stays completely private.

Why is the Lottie JSON so large?

Video is a continuous, high-resolution medium. The tool captures frames and embeds them as WebP or JPEG images in the JSON. Use a smaller max width (320–480px), lower FPS (8–10), and 80–85% WebP quality to keep the output manageable. A 5-second clip at 10 fps, 480px, WebP 85% typically produces a JSON under 2MB.

Which Lottie players are compatible?

The output is standard Lottie v5 JSON, compatible with lottie-web, lottie-react, lottie-react-native, lottie-ios, lottie-android, @lottiefiles/dotlottie-web, and the LottieFiles web player.

What FPS should I use?

8–10 fps works well for most UI animations and loaders. Use 15–24 fps for smoother motion or when the original video has fast movement. Higher FPS means more frames and a larger Lottie JSON.

How long can my clip be?

The limit is 300 frames. At 5 fps that is 60 seconds; at 10 fps it is 30 seconds; at 30 fps it is 10 seconds. The tool shows the max clip length for your selected FPS before you convert.

MP4 to Lottie conversion: use cases, FPS, and file size guide

When to convert MP4 to Lottie instead of using video

Video files (MP4, WebM) are optimal for long-form content, but for short UI animations — loaders, success states, empty-state illustrations, onboarding steps — Lottie JSON is the better choice. Lottie can be controlled programmatically (pause, reverse, set speed, seek to frame), scales without pixelation on high-DPI displays, and integrates cleanly into React, Vue, Swift, and Kotlin without a separate video player component. If you need to animate an existing video clip inside an app and the clip is under 10–15 seconds, converting to Lottie via this tool is a practical workflow. For anything longer, keep using video.

Choosing the right FPS for your animation

FPS determines how many frames are extracted per second, directly affecting both smoothness and output JSON size. For slow-moving transitions or icon animations, 8–10 fps is almost always sufficient. For product demos or motion graphics with fast movement, 15–24 fps keeps it smooth. 30 fps matches standard video but limits your clip to 10 seconds and produces the largest JSON. As a rule of thumb: start at 10 fps and only go higher if you see noticeable stuttering in the Lottie preview. You can always re-convert at a higher setting.

Controlling output file size

The output JSON size is mainly determined by three factors: number of frames (FPS × clip duration), frame dimensions (max width setting), and per-frame compression (WebP/JPEG quality). Halving the max width cuts per-frame data to roughly a quarter (area scales quadratically). Reducing FPS from 15 to 10 cuts frame count by 33%. WebP at 85% vs PNG is typically 50–70% smaller per frame. Combined, these levers can reduce a naive conversion from tens of megabytes to under 1MB for a short loop. The frame deduplication step also helps for clips that have still or near-still sections — identical encoded frames share a single asset in the JSON. You can check the output size in the KB indicator next to the result heading before downloading.

Using converted Lottie in React, iOS, and Android

Once you have the JSON, drop it into your project. In React: import Lottie from 'lottie-react'; <Lottie animationData={data} />. In React Native use lottie-react-native. For iOS (Swift) use the lottie-ios package from LottieFiles. For Android (Kotlin/Java) use lottie-android. All of these accept a local JSON file — no internet required at runtime. The embedded WebP/JPEG frames are decoded by the Lottie renderer the same way it would handle any image asset.

Privacy and client-side processing

All frame extraction and encoding runs in your browser using the native HTML5 video and canvas APIs. The video file is never sent to a server. This makes the tool suitable for converting confidential or proprietary video content — internal product demos, unreleased features, corporate presentations — without any upload risk.

Related tools for your workflow

If you need a GIF first, convert your video with our Video to GIF tool, then bring the GIF into the GIF to Lottie converter. To build an animation from still images, use the Animated GIF Maker and convert the result here. If your source images need to be resized or compressed before animating, use the Image Resizer or Image Compressor. For images with backgrounds to remove before animating, try the Background Remover.