🚀 Zero-Configuration Production API

FFmpeg API That Just Works

Completely containerized FFmpeg processing API that starts with one command. No database setup, no Redis configuration, no manual steps - everything is automated and production-ready out of the box.

🎯 One Command to Production
# Clone and start - that's it!
git clone https://github.com/rendiffdev/ffmpeg-api.git
cd ffmpeg-api
docker-compose up -d

# Your API is ready at http://localhost:8080
# ✅ PostgreSQL configured automatically
# ✅ Redis queue ready for processing
# ✅ Database migrations completed
# ✅ Health checks ensuring stability
# 🚀 Standard API runs on any Docker setup - no GPU required

Built on the Shoulders of Giants

RendDiff is proud to build upon FFmpeg, the incredible open-source project that has powered video technology for decades. We're deeply grateful to the FFmpeg community for their tireless work in creating the most comprehensive multimedia framework in existence.

This project is our contribution back to the community — making FFmpeg's power accessible through a simple, scalable API with zero configuration.

The Problem We're Solving

FFmpeg is incredibly powerful but requires deep expertise to use effectively. RendDiff bridges this gap by providing a clean REST API that handles all the complexity — from infrastructure setup to process management — with absolutely zero configuration required.

🚀

Zero Configuration

Start with one Docker command. PostgreSQL, Redis, migrations, health checks - everything is automated and production-ready instantly.

Async Processing

Celery workers with Redis queue handle massive workloads. Real-time progress via SSE, comprehensive job tracking, and auto-scaling support.

☁️

Multi-Backend Storage

Local filesystem or S3-compatible storage (AWS, MinIO, DigitalOcean). Seamless switching between backends with no code changes.

📊

Quality Metrics

Built-in VMAF, PSNR, and SSIM analysis. Make data-driven decisions about encoding quality vs. file size trade-offs.

🔐

Enterprise Security

API key authentication, IP whitelisting, rate limiting, HSTS, CSP headers. Production-grade security out of the box.

📈

Full Observability

Prometheus metrics, Grafana dashboards, structured JSON logs. Monitor performance, track errors, optimize workflows.

🚀 Advanced AI-Powered Encoding

FFmpeg remains the core encoder — GenAI provides intelligent optimization and enhancement without replacing FFmpeg's proven encoding engine.
⚡ Requires NVIDIA GPU with Docker runtime

📊 Content Analysis

  • PySceneDetect + VideoMAE scene detection
  • AI-powered complexity assessment
  • Automatic content classification
  • Shot boundary detection

✨ Quality Enhancement

  • Real-ESRGAN 2x, 4x, 8x upscaling
  • AI-powered denoising
  • Video restoration for old content
  • Frame interpolation

⚙️ Encoding Optimization

  • AI-suggested FFmpeg parameters
  • Per-title bitrate ladders
  • Quality vs. size optimization
  • Codec selection assistance

📈 Quality Prediction

  • VMAF + DOVER assessment
  • Pre-encoding quality estimation
  • Bandwidth-quality curves
  • Perceptual quality metrics

🔄 Complete Pipelines

  • Smart encoding workflows
  • Adaptive streaming optimization
  • Multi-bitrate packaging
  • End-to-end automation

💻 Hardware Requirements

  • GPU: NVIDIA RTX 3090+ (24GB VRAM)
  • Recommended: NVIDIA A100
  • CPU fallback available
  • Docker GPU runtime support

🏗️ Production Architecture

Entry Point
🌐
KrakenD
API Gateway :8080
Processing
FastAPI
REST API :8000
⚙️
Celery
Async Workers
🎬
FFmpeg
Video Engine
Infrastructure
🗄️
PostgreSQL
Metadata Store
📊
Redis
Job Queue
☁️
Storage
S3 / Local
Monitoring
📈
Grafana
Dashboards :3000
🤖
AI Models
GPU Enhanced

Developer Friendly API

Stop wrestling with FFmpeg command lines. Start shipping features. RendDiff handles the complexity so you can focus on building great applications.

# Convert video with zero configuration needed
curl -X POST http://localhost:8080/api/v1/convert \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "input_path": "/input/video.mp4",
    "output_path": "/output/converted.mp4",
    "operations": [
      {"type": "transcode", "codec": "h264", "crf": 23},
      {"type": "scale", "width": 1920, "height": 1080}
    ]
  }'

# Response with job tracking
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "processing",
  "progress": 0.0
}
# AI-powered smart encoding pipeline
curl -X POST http://localhost:8080/api/genai/v1/pipeline/smart-encode \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "video_path": "/input/video.mp4",
    "quality_preset": "high",
    "optimization_level": 2
  }'

# AI upscaling with Real-ESRGAN
curl -X POST http://localhost:8080/api/genai/v1/enhance/upscale \
  -H "X-API-Key: your-api-key" \
  -d '{
    "video_path": "/input/video.mp4",
    "scale_factor": 4,
    "model_variant": "RealESRGAN_x4plus"
  }'
# Scale API instances
docker-compose up -d --scale api=3

# Scale workers for heavy processing
docker-compose up -d --scale worker=8

# Scale with AI workers (GPU required)
docker-compose -f docker-compose.genai.yml up -d --scale worker-genai=4

# Monitor scaling metrics
curl http://localhost:3000/api/dashboards/worker-status
# Health check endpoint
curl http://localhost:8080/api/v1/health

# Prometheus metrics
curl http://localhost:9090/metrics

# Real-time job progress via SSE
curl -N http://localhost:8080/api/v1/jobs/{job_id}/progress

# Grafana dashboards (admin/admin)
# - API Performance: Request metrics and response times
# - Worker Status: Celery worker health and queue status  
# - System Resources: CPU, memory, and disk usage
# - GenAI Metrics: AI model performance and GPU utilization

Join the Community

💬

Discuss

Join discussions, share ideas, and get help from the community.

GitHub Discussions
🐛

Report Issues

Found a bug? Have a feature request? Let us know!

Open Issue
🚀

Contribute

Help us make RendDiff better. Every contribution counts!

Contribute

Your Contribution Matters

Whether it's code, documentation, bug reports, or feature ideas — every contribution helps make RendDiff better for everyone.

Star & Fork on GitHub