Fluvie Documentation¶
Create stunning videos programmatically with Flutter
Fluvie is a powerful Flutter library that lets you compose and render videos using familiar Flutter widgets. Whether you're building Spotify Wrapped-style year reviews, animated social media content, or automated video generation pipelines, Fluvie gives you the tools to create professional videos entirely in code.
Quick Example¶
import 'package:fluvie/declarative.dart';
Video(
fps: 30,
width: 1920,
height: 1080,
scenes: [
Scene(
durationInFrames: 90, // 3 seconds at 30fps
background: Background.gradient(
colors: {0: Colors.purple, 90: Colors.blue},
),
children: [
VCenter(
child: AnimatedText.slideUpFade(
'Hello, Fluvie!',
style: TextStyle(fontSize: 72, color: Colors.white),
),
),
],
),
],
)
Table of Contents¶
- Getting Started
- Core Concepts
- Tutorials
- Widget Reference
- Features
- Advanced Topics
- Examples
- Contributing
Getting Started¶
New to Fluvie? Start here:
| Guide | Description |
|---|---|
| Installation | Add Fluvie to your project |
| FFmpeg Setup | Configure video encoding for your platform |
| First Video | Create your first animated video |
Platform-specific setup: - Linux | macOS | Windows | Web | Mobile
Core Concepts¶
Understand how Fluvie works under the hood:
| Topic | Description |
|---|---|
| Architecture | The dual-engine model (Flutter + FFmpeg) |
| Frame-Based Animation | Why frames matter for video |
| Rendering Pipeline | How widgets become video |
| Preview vs Render Mode | Interactive development vs final export |
Tutorials¶
Step-by-step guides to build complete videos:
| Tutorial | What You'll Build |
|---|---|
| Simple Animation | Image, animated text, and background music |
| Advanced Composition | Multi-scene video with transitions, effects, and embedded video |
Widget Reference¶
Core Widgets¶
The building blocks of every Fluvie video:
| Widget | Purpose |
|---|---|
| Video | Declarative composition root (high-level API) |
| VideoComposition | Low-level composition root |
| Scene | Time-bounded section of video |
| Sequence | Basic timing container |
| TimeConsumer | Frame-based animation driver |
Layout Widgets¶
Video-aware layout with timing and fade support:
| Widget | Purpose |
|---|---|
| LayerStack | Z-indexed layer composition |
| Layer | Individual layer with visibility timing |
| VStack | Video-aware Stack |
| VColumn | Column with stagger animation support |
| VRow | Row with stagger animation support |
| VCenter | Centered content with timing |
| VPadding | Padded content with timing |
| VSizedBox | Sized box with timing |
| VPositioned | Positioned elements with hero transitions |
Audio Widgets¶
Add music, sound effects, and audio-reactive features:
| Widget | Purpose |
|---|---|
| AudioTrack | Precise audio timing and sync |
| AudioSource | Audio file references |
| BackgroundAudio | Full-video background music |
| AudioReactive | BPM and frequency analysis |
Text Widgets¶
Animated typography:
| Widget | Purpose |
|---|---|
| FadeText | Text with opacity support |
| AnimatedText | Pre-built text animations |
| TypewriterText | Character-by-character reveal |
| CounterText | Animated number counting |
Media Widgets¶
Embed images and videos:
| Widget | Purpose |
|---|---|
| EmbeddedVideo | Video-in-video with frame sync |
| VideoSequence | External video files |
| Collage | Multi-element layouts |
Features¶
Animations¶
Powerful animation system with presets and customization: - PropAnimation - Transform, scale, rotate, fade - Entry Animations - Dramatic entrance effects - Stagger Config - Sequenced child animations - Interpolate - Keyframe-based values - Easing Curves - Smooth motion curves
Effects¶
Visual enhancements and atmosphere: - Particle Effects - Sparkles, confetti, rain - Effect Overlays - Vignette, grain, scanlines - Backgrounds - Gradients and solid colors - Transitions - Scene-to-scene effects
Helper Widgets¶
Ready-made components for common patterns: - PolaroidFrame - Photo frame styling - PhotoCard - Card-style photos - StatCard - Animated statistics - FloatingElement - Ambient motion - KenBurnsImage - Zoom and pan effect
Templates¶
30 production-ready templates across 6 categories: - Intro Templates - Opening sequences - Ranking Templates - Top lists - Data Viz Templates - Statistics displays - Collage Templates - Image layouts - Thematic Templates - Mood pieces - Conclusion Templates - Closing scenes
Embedding Media¶
Include external assets in your videos: - Images - Photos and graphics - Videos - Video clips and loops - Audio - Music and sound effects - Fonts - Custom typography
Advanced Topics¶
| Topic | Description |
|---|---|
| Encoding Settings | Quality, format, and codec options |
| Sync Anchors | Precise audio-visual synchronization |
| Custom Render Pipeline | Advanced rendering control |
| Frame Extraction | Extract frames from videos |
| Performance Tips | Optimization techniques |
Special Modes¶
- Server-Only Mode - Rendering without a Flutter UI
Extending Fluvie¶
Build your own animations, effects, and templates:
| Guide | Description |
|---|---|
| Custom Animations | Create PropAnimation subclasses |
| Custom Effects | Build visual effects |
| Custom Templates | Design reusable templates |
| Custom FFmpeg Provider | Platform-specific encoding |
Examples¶
Explore working examples in the /example directory:
| Example | Description |
|---|---|
| Simple Animation | Basic shapes and motion |
| Text Overlay | Text on images |
| Image Slideshow | Photo transitions |
| Layered Composition | Complex layering |
| Animated Gradient | Color animations |
| Year in Review | Complete Spotify Wrapped-style video |
| FlutterVienna Review | Advanced production example |
Run the example app:
Contributing¶
We welcome contributions! See our guides:
| Guide | Description |
|---|---|
| Contributing Overview | How to help |
| Development Setup | Local environment |
| Testing Guide | Writing tests |
| Code Style | Formatting standards |
| Getting Support | Issues and help |
License¶
Fluvie is released under the MIT License. See LICENSE for details.
AI & IDE Integration¶
Use AI assistants effectively with Fluvie:
| Resource | Description |
|---|---|
| AI Reference File | Complete documentation in one AI-optimized file |
| MCP Server | Model Context Protocol server for AI tools |
| IDE Helpers | Cursor rules, Claude Code, and editor integration |
Quick Links: - MCP Setup - Self-host the MCP server - IDE Integration - Configure Claude Desktop, VS Code, etc. - Cursor Rules - Rules file for Cursor IDE
Links¶
- GitHub Repository
- Pub.dev Package
- Issue Tracker
- MCP Server - AI documentation server