aether-renderer-core 0.1.8

A sacred Rust-based CLI for rendering transparent WebM/MP4/GIF from PNG sequences
aether-renderer-core-0.1.8 is not a library.
Visit the last successful build: aether-renderer-core-0.4.0

Aether Renderer Core

Aether Renderer Core is a lightweight, Rust-based CLI tool that converts image sequences (PNG/WebP) into transparent .webm or .mp4 videos using ffmpeg.

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.