Contentor Video Processor
A self-hosted video compression platform with an Airflow-orchestrated FFmpeg pipeline and workload-isolated processing queues.
Overview
A self-hosted platform for compressing videos. The web app and API live at process.contentor.app, but the interesting part is the backend that turns "compress this video" into a reliable, observable pipeline.
- **Apache Airflow** orchestrates each job as a DAG: download from object storage → transcode → upload → extract metadata → clean up, with each step writing a status the UI reads back as live progress, and a failure callback that marks the job failed.
- **Workload-isolated Celery queues**: separate DAGs per plan tier and video size (freemium/premium × S/M/L/XL) route work to dedicated worker pools — fast status updates, I/O transfers, and CPU-heavy FFmpeg encoding each get their own queue and concurrency, so a huge premium job can't starve a quick free one.
- **Adaptive FFmpeg encoding**: each input is probed with ffprobe, then a CRF is chosen from its bitrate and codec so re-encoding actually shrinks the file instead of bloating it.
- **Storage** on MinIO (S3-compatible), with **PostgreSQL + Redis** behind it and a full **Prometheus + Grafana + Loki** observability stack. Stripe-backed plans and quotas.
Updates
No updates added yet.