Skip to main content

Welcome to MovieLite

MovieLite is a Python video editing library built with a focus on speed and simplicity for common workflows. It offers a clean, chainable API that will feel familiar to MoviePy users, but delivers significant performance gains for CPU-based rendering.

Quick Start

Get started with your first video in minutes

Installation

Install MovieLite and its dependencies

Key Features

MovieLite is designed to make video editing fast, intuitive, and powerful:

Performance Optimized

Uses Numba JIT compilation for critical rendering operations, delivering up to 4.6x faster performance than MoviePy for complex compositions

Clean API

Chainable methods for intuitive video editing workflows that feel natural and readable

Comprehensive Effects

Built-in visual effects (vfx), audio effects (afx), and transitions (vtx) for professional-quality results

Multiprocessing Support

Parallel rendering for faster video generation on multi-core systems

Frame-by-Frame Control

Full control over every frame and audio sample for precise editing

Audio Mixing

Mix multiple audio tracks with per-sample control and effects

Performance Comparison

MovieLite excels at common video editing tasks. Performance improvements come from:
  1. Numba JIT compilation - Critical rendering loops are compiled to native code
  2. Optimized compositing - Efficient alpha blending and frame composition
  3. Memory management - Streaming architecture reduces memory footprint
  4. Multiprocessing - Parallel frame rendering for multi-core systems

Benchmark Results

Real-world benchmarks comparing MovieLite with MoviePy 2.2.1 (1280x720 video, 30fps):
TaskMovieLiteMoviePySpeedup
No processing6.34s6.71s1.06x 🚀
Video zoom9.52s31.81s3.34x 🚀
Fade in/out8.53s9.03s1.06x 🚀
Text overlay7.82s35.35s4.52x 🚀
Video overlay18.22s75.47s3.14x 🚀
Alpha video overlay10.75s42.11s3.92x 🚀
Complex mix*38.07s175.31s4.61x 🚀
Total99.24s375.79s3.79x 🚀
*Complex mix includes: video with zoom + fade, image clips with fade, text overlay, video overlay - all composed together.
MovieLite excels at:
  • Transform operations (zoom, scale, resize) - up to 3.34x faster
  • Text overlays and compositing - up to 4.52x faster
  • Video overlays and layering - up to 3.14x faster
  • Alpha channel compositing - up to 3.92x faster
  • Complex multi-effect compositions - up to 4.61x faster

Architecture

Frame-by-Frame Processing

Like MoviePy, MovieLite operates on a frame-by-frame basis:
# Every frame is individually processed
for frame_idx in range(total_frames):
    t = frame_idx / fps
    frame = clip.get_frame(t)  # Get raw frame
    frame = apply_transforms(frame, t)  # Apply effects
    frame = blend_with_other_clips(frame, t)  # Composite
    write_frame_to_output(frame)
This approach provides:
  • Complete control over every pixel
  • Ability to apply time-based effects
  • Support for complex compositing operations
  • Memory efficiency through streaming

Numba Optimization

Critical operations are JIT-compiled with Numba for near-native performance:
@numba.jit(nopython=True, cache=True)
def blend_foreground_with_bgr_background_inplace(
    background, foreground, x, y, opacity, mask, ...
):
    # Pixel-perfect alpha blending at native speed
    ...
This provides near-native performance for:
  • Alpha blending operations
  • Pixel-wise transformations
  • Color space conversions

What MovieLite Supports

Video Capabilities

  • Video clips with frame-level access
  • Alpha video clips (transparency support via AlphaVideoClip)
  • Image clips (static images as video frames)
  • Text rendering (via pictex library)
  • Mask support for advanced compositing effects
  • Video effects: fade, blur, color adjustments, vignette, zoom, glitch effects, rotation
  • Video transitions: crossfade, dissolve, blur dissolve
  • Position, scale, opacity, rotation, and size transformations
  • Custom frame transformations
  • Video looping
  • Playback speed control

Audio Capabilities

  • Audio clips with sample-level access
  • Audio effects: fade in/out
  • Volume control and volume curves
  • Multiple audio track mixing
  • Audio from video files
  • Custom audio transformations

Output Formats

  • Video codec: libx264 (H.264)
  • Container format: MP4
  • Audio codec: AAC
  • Quality presets: LOW, MIDDLE, HIGH, VERY_HIGH

Current Limitations

  • Output is limited to MP4 format with libx264 codec
  • No GPU acceleration (CPU-based rendering only)

Use Cases

MovieLite is perfect for:
  • Content Creators: Quickly process and edit videos with effects and overlays
  • Automation: Batch process videos with consistent transformations
  • Social Media: Create engaging content with text overlays and transitions
  • Data Visualization: Generate videos from data and animations
  • Education: Create tutorial videos with annotations and effects
  • Marketing: Produce promotional videos with professional effects

Next Steps

Installation Guide

Install MovieLite and set up FFmpeg

Quick Start

Create your first video in minutes

Build docs developers (and LLMs) love