[Unreleased]
Added
Playback Speed Control
New
set_speed() method for all clip types allows you to control playback speed:Rotation Support
Rotation support via
set_rotation() method and vfx.Rotation effect:Fixed
AlphaVideoClip.subclip()preservation: Now correctly returnsAlphaVideoClipinstead ofVideoClip, preserving transparency and loop behavior
[0.2.1] - 2025-11-15
Changed
Breaking change:
CompositeClip and AlphaCompositeClip constructor signatures have changed.-
CompositeClip signature update: Constructor now requires explicit
startparameter with optionalduration: -
The
durationparameter is optional and will be auto-calculated from child clips if not provided -
This change applies to both
CompositeClipandAlphaCompositeClip
[0.2.0] - 2025-11-15
Added
Composite Clips
New
CompositeClip and AlphaCompositeClip classes for grouping multiple clips as a single unit:High-Precision Blending
New
high_precision_blending parameter for fine control over blending precision:Changed
Performance improvement: Default blending mode is now faster with uint8 precision.
- Background frame precision: Background frames now use uint8 by default during blending instead of float32
- This reduces memory usage and improves rendering speed for most use cases
- float32 precision is now opt-in via
high_precision_blending=True - High-precision mode recommended only for:
- Multiple layers with transparency
- Subtle gradients requiring high color accuracy
- Complex alpha compositing
- uint8 mode (default): ~15-25% faster rendering, lower memory usage
- float32 mode (opt-in): Maximum color accuracy, higher memory usage
Fixed
- Clip ordering preservation: Replaced internal
setwithlistto maintain proper z-order for composition and blending - Video subclipping:
VideoClip.subclip()now correctly copies pixel transforms to the new clip instance
[0.1.1] - 2025-11-09
Fixed
Memory Leak Fix
Memory Leak Fix
Critical fix: Memory leak when rendering multiple video clips.Problem: All video clips remained open in memory until the end of rendering, causing memory exhaustion on long projects.Solution: Clips are now closed progressively as they finish rendering, freeing resources immediately.Impact: Dramatically reduced memory usage for projects with many clips or long videos.
Float Position Support
Float Position Support
Improvement: Zoom and position calculations now support float values.Problem: Position calculations truncated decimal values, causing jumpy animations.Solution: Float positions are now properly rounded instead of truncated.Note: Subpixel rendering is not supported, but rounding provides smoother animation than truncation.
[0.1.0] - 2025-11-08
Initial Release
First public release of MovieLite!
Features
- Core
- Effects
- Performance
- Transformations
Core Functionality:
- Frame-by-frame video processing
- VideoClip, AlphaVideoClip for video handling
- ImageClip for static images
- TextClip with pictex integration
- AudioClip for audio tracks
- VideoWriter for composition and rendering
Capabilities
Video:- Load and manipulate video files
- Alpha video support (transparency)
- Image clips (static images as frames)
- Text rendering with advanced styling
- Mask support for compositing
- Video looping
- Playback speed control
- Subclip extraction
- Audio clip loading and mixing
- Volume control and curves
- Audio effects (fade in/out)
- Multiple audio track mixing
- Sample-level access
- MP4 container format
- H.264 video codec (libx264)
- AAC audio codec
- Quality presets: LOW, MIDDLE, HIGH, VERY_HIGH
Requirements
- Python 3.10-3.13
- FFmpeg (must be in PATH)
- NumPy
- OpenCV (opencv-python)
- Numba
- multiprocess
- tqdm
- pictex
Version Naming Convention
MovieLite follows Semantic Versioning:- MAJOR version (X.0.0): Incompatible API changes
- MINOR version (0.X.0): New functionality in a backwards-compatible manner
- PATCH version (0.0.X): Backwards-compatible bug fixes
Upgrade Guide
Upgrading to 0.2.1 from 0.2.0
If you useCompositeClip or AlphaCompositeClip, update constructor calls:
Upgrading to 0.2.0 from 0.1.x
Review blending precision
Default blending is now uint8 for better performance. If you need maximum color accuracy:
Test clip ordering
Clip z-order is now preserved correctly. Verify that your compositions render in the expected order.
Deprecation Policy
MovieLite aims to maintain backwards compatibility whenever possible. When breaking changes are necessary:- The old API will be deprecated for at least one minor version
- Deprecation warnings will be issued
- Migration guides will be provided
- Breaking changes are noted clearly in changelog