aether-renderer-core 0.2.0

A sacred Rust-based CLI for rendering transparent WebM/MP4/GIF from PNG sequences
Documentation

Aether Renderer Core

Crates.io Downloads License

Aether Renderer Core is a lightweight, Rust-based and a sacred CLI tool to render transparent .webm, .mp4, and .gif from image sequences with alpha channel support, loop softening, and ffmpeg power.

Built with love for artists, developers, and sacred animation workflows.

Rust FFmpeg


✨ Features

  • ✅ Supports alpha channel export (via yuva420p)
  • ✅ Input PNG/WebP sequences with alpha from folder or .zip file
  • ✅ Export .webm with alpha (via libvpx)
  • ✅ Export .gif with alpha
  • .mp4 fallback (no alpha)
  • ✅ CLI flags for FPS, input folder, output path, format
  • ✅ Optional --fade-in and --fade-out for smooth loops
  • ✅ Optional --bitrate and --crf for quality control
  • ✅ Optional --preview to open the video after export
  • ✅ Handle errors & missing frames gracefully

🧪 Usage

cargo run --release -- \
  --input ./frames \
  --output my.webm \
  --fps 30 \
  --format webm \
  --fade-in 1 \
  --fade-out 1 \
  --bitrate 2M \
  --crf 23 \
  --preview

The --fade-in and --fade-out flags apply ffmpeg's fade filter under the hood. The start of the fade out is automatically calculated from the frame count and FPS.

📂 Your input folder should contain files like:

frame_0000.png
frame_0001.png
frame_0002.png
...

You can now also pass a .zip file containing frames:

cargo run -- --input ./my-frames.zip --output my.webm --fps 30 --format webm

📂 Your input folder or ZIP file must contain images named like:

frame_0000.png
frame_0001.png
frame_0002.png
...

Alpha-enabled PNGs are recommended for transparent .webm.


Convert to gif file with transparent background:

cargo run -- --input ./my-frames.zip --output my.gif --fps 30 --format gif

(Just make sure ffmpeg is installed)


📦 Download prebuilt binaries

prebuilds for linux, mac & windows can be found under releases in github repository.

🛠️ Download prebuilt binaries from the Releases page.


🧰 Requirements

  • Rust & Cargo installed: https://rustup.rs
  • ffmpeg must be installed and accessible in your system path

🧪 Tests

This project contains both unit tests and integration tests. The unit tests live next to the code they verify (for example in src/utils/unzip_frames.rs) while the integration tests reside in tests/integration.rs.

Run all tests using Cargo:

cargo test

The integration suite relies on ffmpeg being available on your system. If ffmpeg is missing, the rendering test is skipped but all other tests still run.


📦 Example ZIP

You can test the renderer using the provided frame sequence:

sacred-stars.zip

Run it like this:

cargo run -- --input examples/sacred-stars.zip --output demo.webm --fps 30 --format webm

This will generate a loopable .webm video with alpha.


✨ Example Output

See full demo here (just started): Webpage demo

Here’s one frame from the sacred animation:

frame


✨ Example Animation

demo

▶️ Watch output video


🔮 Roadmap

  • Render .png.webm (with alpha)
  • Support .mp4 export
  • Add bitrate / CRF quality control
  • --fade-in, --fade-out for soft loops
  • Handle errors & missing frames gracefully
  • Add optional CLI preview
  • Begin GUI version with Tauri (aether-renderer) 🌟

🌿 License

MIT — created with sacred care by @madspaaskesen


🌐 Related Projects


💛 Made with love by Sacred-AI

🙏 Made with clarity and care by @mads @ @sacred-ai 💛

🌸 Powered by Rust Lang, Rust getting started

Aether Renderer Core is the sacred heart of a lightweight animation rendering toolkit. Converts frame sequences to video with love, transparency, and full creative control.