π¬ Compix β Video Processing Backend API
Compix is a production-style backend system that allows users to upload videos, compress them asynchronously using FFmpeg, and download optimized outputs β with real-time progress tracking and automatic storage management.
π Features
π€ Video Upload API
βοΈ Asynchronous Background Processing
π₯ FFmpeg Video Compression
π Database-Backed Job Status (SQLite)
π RESTful API Design
π§ How Compix Works
User uploads a video
Compix stores metadata in a database
Compression runs in a background thread
FFmpeg progress is tracked
User checks processing status via API
Compressed video becomes available for download
π§± Tech Stack Backend Framework FastAPI Video Processing FFmpeg Database SQLite Async Jobs Python Threads API Documentation Swagger π‘ API Endpoints Method Endpoint Description POST /upload Upload video for compression GET /status/{video_id} Get processing status & progress GET /download/{video_id} Download compressed video π Status Flow UPLOADING β PROCESSING β DONE β FAILED
π Upload Restrictions
Allowed formats: .mp4, .mov, .mkv
python -m venv venv
venv\Scripts\activate
pip install fastapi uvicorn python-multipart
python -m uvicorn app.main:app --reload
Open API docs at: π http://127.0.0.1:8000/docs
π‘ What Compix Demonstrates
Compix is designed to showcase backend engineering skills:
External tool integration (FFmpeg)
Database-backed task tracking
π§βπ» Author
Purnendu Sekhar Singha Roy Backend Developer | Python | System Design Enthusiast