A web-based media transcoding tool with professional architecture.
MPR separates media into input and output paths, each independently configurable. File paths are stored relative to their respective root to ensure portability between local development and cloud deployments (AWS S3, etc.).
MEDIA_IN - Source media files to process
MEDIA_OUT - Transcoded/trimmed output files
Why Relative Paths?
MEDIA_IN=/app/media/in
MEDIA_OUT=/app/media/out
/app/media/
├── in/ # Source files
│ ├── video1.mp4
│ └── subfolder/video3.mp4
└── out/ # Transcoded output
└── video1_h264.mp4
MEDIA_IN=s3://source-bucket/media/
MEDIA_OUT=s3://output-bucket/transcoded/
MEDIA_BASE_URL=https://source-bucket.s3.amazonaws.com/media/
Database paths remain unchanged (already relative). Just upload files to S3 and update environment variables.
POST /api/assets/scan - Recursively scans
MEDIA_IN and registers video/audio files
POST /api/jobs/ - Creates transcoding job with
source asset, preset, and optional trim times
Supported File Types:
Video: mp4, mkv, avi, mov, webm, flv, wmv, m4v
Audio: mp3, wav, flac, aac, ogg, m4a
# Add to /etc/hosts
127.0.0.1 mpr.local.ar
# URLs
http://mpr.local.ar/admin - Django Admin
http://mpr.local.ar/api - FastAPI (docs at /api/docs)
http://mpr.local.ar/ui - Timeline UI