December 14, 2025
New features
Docker Resource Limits
Thedocker-compose.yml now includes configurable resource constraints to prevent video processing from overwhelming the server:docker-compose.yml
- Memory limit: 4GB (suitable for most deployments)
- CPU limit: 2.0 cores
- Memory reservation: 1GB minimum
Job Queue System with Auto-Scaling
Introduced a robust job queue system that prevents concurrent video transformations from consuming all available resources.Automatic Concurrency Detection:- Formula: 1 worker per 2GB of RAM (minimum 1, maximum 16)
- Automatically detects the server’s total RAM and calculates optimal concurrent jobs
- Example: 8GB RAM = 4 concurrent video jobs maximum
.env
.env
How it works
1
Upload
When you upload a video, it’s queued for processing instead of being processed immediately.
2
Priority
Thumbnail extraction has higher priority than transformations.
3
Concurrency Control
Only processes N videos simultaneously based on available RAM.
4
Retry Logic
Failed jobs are automatically retried up to 3 times.
5
Resource Protection
Docker limits prevent any single process from consuming too much memory.
Improvements
- SIGKILL errors: By limiting concurrent jobs and Docker resources, FFmpeg won’t be killed by the OOM killer
- Large files: The queue ensures large videos are processed sequentially if resources are limited
- Server stability: Self-hosted deployment will remain stable under heavy load
- Automatic recovery: Crashed jobs are automatically retried
The system works out-of-the-box with sensible defaults. The log on startup will show:
December 4, 2025
New features
- Video trimming and thumbnail extraction: Added support for video trimming with
so(start offset) andeo(end offset) parameters - Thumbnail generation: Extract single frames from videos as images using
socombined with image formats (webp,jpeg,png) - API-only mode: Standalone API deployment option with auto-generated API keys for headless setups
- Contextual options: Enhanced documentation with copy, ChatGPT, Claude, and Cursor integration options
Documentation improvements
- Enhanced media transformation documentation with comprehensive parameter reference for images and videos
- Added detailed Docker volume persistence warnings and best practices
- Created comprehensive security guide covering authentication, API keys, and best practices
- Improved Quick Start guide with multiple deployment modes (Normal, S3 Compatible, API Only)
- Updated storage configuration documentation with detailed setup instructions
- Restructured navigation for improved content discoverability
Bug fixes
- Fixed Docker command consistency across documentation
- Updated navigation links to reflect new documentation structure
December 2, 2025
Breaking changes
-
Parameter syntax update: Changed transformation parameter syntax from
param:valuetoparam_valueto match Cloudinary’s syntax 1:1. This change enables faster transition for developers migrating from Cloudinary and reduces the learning curve. Migration example:- Old syntax:
/t/resize:1280x720/image.jpg - New syntax:
/t/w_1280,h_720/image.jpg
- Old syntax:
Initial release
- Core media processing: On-the-fly image and video transformations
- Image transformations: Resize, crop, and optimize images with quality control
- Video transformations: Resize and compress videos with CRF quality encoding
- Intelligent compression: Automatic format optimization (WebP, AVIF)
- Cloud storage integration: Support for AWS S3 and S3-compatible storage (Cloudflare R2, DigitalOcean Spaces, Minio)
- Self-hosted deployment: Docker-based deployment with dashboard and API
- Caching layer: Built-in caching for fast transformation delivery
- RESTful API: Simple, powerful API for media operations