Noureddine RAMDI / Inside LottieViewConvert: a cross-platform Lottie to GIF and video converter powered by SkiaSharp

Created Sat, 23 May 2026 20:41:14 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

SwaggyMacro/LottieViewConvert

LottieViewConvert tackles a specific but common problem: how to convert vector-based Lottie animations and Telegram sticker files (TGS) into widely supported raster and video formats without relying on command-line fiddling. What sets it apart is how it actually renders the vector animations frame-by-frame using SkiaSharp’s Skottie module rather than just wrapping FFmpeg or other CLI tools. This allows for precise control over quality and format output in a desktop app with a modern UI.

What LottieViewConvert is and how it works

LottieViewConvert is a cross-platform desktop application built in C# using .NET 8 and Avalonia UI, which ensures it runs on Windows, macOS, and Linux (x64 architectures). At its core, it provides conversion of Telegram Sticker (TGS) and standard Lottie animations into multiple output formats: GIF, WebP, APNG, MP4, MKV, AVIF, and WebM.

The rendering pipeline is the technical heart of the project. It uses SkiaSharp’s Skottie module to parse and rasterize the vector animations frame-by-frame. This is crucial because Lottie animations are JSON-based vector animations, which need to be rasterized into bitmaps before encoding into raster formats.

Once frames are rendered, they are passed to two encoder pipelines depending on the output format. For GIF output, the frames feed into gifski, a high-quality GIF encoder known for its efficient palette management and compression. For video formats such as MP4 or WebM, it uses FFmpeg, a powerful multimedia framework capable of encoding to a wide variety of formats.

The app follows the ReactiveUI MVVM (Model-View-ViewModel) pattern combined with Avalonia UI for a clean separation of concerns and a responsive UI. It supports batch processing with concurrent tasks, making it suitable for converting large sticker or animation libraries efficiently.

Additionally, LottieViewConvert integrates Telegram and Discord sticker pack downloading through their APIs, enabling users to fetch animated sticker packs directly within the app.

Why LottieViewConvert stands out: rendering pipeline and usability tradeoffs

What distinguishes LottieViewConvert is its end-to-end handling of the Lottie animation rasterization and encoding pipeline inside a single application. Many tools simply wrap FFmpeg or rely on external scripts; here, the animation rendering via SkiaSharp’s Skottie module is native and integrated, enabling fine-tuned control over frame rate, resolution, playback speed, and output quality.

The abstraction of encoder parameters into quality presets (Low, Medium, High, Custom) is a thoughtful UX choice. It shields non-technical users from the complexity of configuring gifski or FFmpeg flags while still allowing power users to customize if needed.

The use of Avalonia UI with ReactiveUI MVVM gives a modern, cross-platform desktop experience, which is not trivial given the complexity of multimedia processing in a UI app.

The tradeoff is clear: the app depends on external tools gifski and FFmpeg for encoding, which must be installed and available in PATH. While the app can automate dependency installation on Windows and Ubuntu, this adds a layer of setup complexity and platform-specific considerations (for example, gifski automatic install only supports x64, requiring manual install on ARM64).

Supporting batch processing with concurrency hints at good performance design, but the actual throughput depends heavily on system resources and the efficiency of SkiaSharp rendering plus encoding.

The integration of Telegram/Discord APIs for sticker pack downloading is a nice addition but secondary to the core conversion pipeline.

Quick start with LottieViewConvert

๐Ÿ“ System requirements

Install the following dependencies and ensure they are available in your PATH:

Required Dependencies

  • gifski - For high-quality GIF conversion
  • FFmpeg - For video format conversion (MP4, MKV, WebM)

Installation Instructions

Now, You can install it automatically by the application, or you can install it manually. Just run the application, and go to Settings -> Dependencies, and it will install gifski and ffmpeg automatically.

gifski automatically install only support x64 platforms, if you are using ARM64 platform, please install it manually.

Only tested on Windows, Ubuntu now.

For manual installation, follow the instructions below based on your operating system:

Windows:


# Install via Chocolatey
choco install gifski ffmpeg

# Install via Homebrew
brew install gifski ffmpeg

Linux (Ubuntu/Debian):


### ๐Ÿš€ Getting Started
---

#### 1. Download
- Download the latest release from the Releases page
- Extract the archive to your preferred location
- Run the application executable

#### 2. Basic Usage
##### Single Conversion
1. **Launch the application**
2. **Select source files**: Click "Browser" right the Home Page,  or drag & drop TGS/Lottie files
3. **Choose output format**: Select from GIF, WebP, APNG, MP4, MKV, AVIF, WebM
4. **Adjust settings** (optional):
    - Frame rate (1-240 fps, 100 fps for GIF only)
    - Resolution
    - Playback speed (0.1x - 10.0x)
    - Quality settings
5. **Convert**: Click "Convert"

##### Batch Conversion
1. **Launch the application**
2. **Go to the Factory Page**
3. **Browser Tgs/Lottie Folder**: Select a folder containing TGS or Lottie files, or just drag & drop the folder.
4. **Adjust settings like single conversion**
5. **Convert**: Click "Start"

##### Download Telegram Sticker/Emoji (Including animated stickers and regular stickers)
1. **Launch the application**
2. **Set up the Telegram Bot Token**: Go to `Settings` -> `Telegram`, a

## verdict

LottieViewConvert is a solid, practical desktop tool for anyone needing to convert Lottie or Telegram TGS animations into common raster and video formats without resorting to command-line utilities. Its core technical strength lies in the integrated rendering pipeline using SkiaSharp's Skottie module, which makes the conversions more precise and customizable than simple wrappers around FFmpeg.

The app's cross-platform nature and batch processing support make it suitable for power users managing large animation collections. The quality preset abstraction improves accessibility for less technical users.

That said, the reliance on external tools like gifski and FFmpeg means you have to manage dependencies, which can be a barrier on non-x64 or less common platforms. The UI is modern but might not cover every edge case of complex Lottie animations โ€” this is typical given the challenges of fully supporting the Lottie spec.

Overall, it's a useful addition to the toolbox of developers and designers working with animated stickers or Lottie animations who want a GUI-driven, multi-format export solution.

## Related Articles

- [Hyperframes: HTML-native video rendering framework optimized for AI coding agents](https://ramdi.fr/github-stars/hyperframes-html-native-video-rendering-framework-optimized-for-ai-coding-agents/) โ€” Hyperframes uses HTML + CSS + GSAP for video rendering with AI agent-friendly CLI and plugins. It leverages deterministi
- [Inside LTX Video Generator for Mac: Bridging SwiftUI with Python for local AI video generation](https://ramdi.fr/github-stars/inside-ltx-video-generator-for-mac-bridging-swiftui-with-python-for-local-ai-video-generation/) โ€” LTX Video Generator for Mac runs complex AI video generation entirely on Apple Silicon by bridging native SwiftUI with a
- [FlowKit: automating AI video generation with visual consistency via a Chrome extension bridge](https://ramdi.fr/github-stars/flowkit-automating-ai-video-generation-with-visual-consistency-via-a-chrome-extension-bridge/) โ€” FlowKit automates AI video creation using Google Flow API with a unique reference image system ensuring visual consisten
- [ComfyUI Trellis2: Extending ComfyUI with Dinov3 for 3D-Aware Diffusion Workflows](https://ramdi.fr/github-stars/comfyui-trellis2-extending-comfyui-with-dinov3-for-3d-aware-diffusion-workflows/) โ€” ComfyUI-Trellis2 integrates facebook's Dinov3 model into ComfyUI for advanced 3D-aware diffusion workflows. This article
- [Structured prompt engineering with awesome-gpt-image-2: a curated GPT Image 2 prompt library in TypeScript](https://ramdi.fr/github-stars/structured-prompt-engineering-with-awesome-gpt-image-2-a-curated-gpt-image-2-prompt-library-in-typescript/) โ€” A TypeScript library of 4,000+ curated GPT Image 2 prompts in JSON with dynamic Raycast Snippet arguments, multilingual 

---

**โ†’ GitHub Repo:** [SwaggyMacro/LottieViewConvert](https://github.com/SwaggyMacro/LottieViewConvert) โญ 560 ยท C#