Plataforma inteligente de procesamiento de video
Convierte videos horizontales a formato vertical 9:16 con detección de rostros, reencuadre inteligente y múltiples modos de procesamiento para TikTok, Instagram Reels y YouTube Shorts.
- ¿Qué es Elevideo?
- Arquitectura del sistema
- Demos y deploys
- Repositorios del proyecto
- Stack tecnológico
- El equipo
Elevideo es una plataforma web que permite a creadores de contenido transformar sus videos horizontales en clips verticales listos para publicar en redes sociales, sin necesidad de editar manualmente.
El sistema detecta automáticamente los rostros en el video, calcula el encuadre óptimo en cada fotograma y aplica estabilización cinematográfica para generar un resultado fluido y profesional.
- 📁 Proyectos — Organiza tus videos en proyectos independientes
- ⬆️ Subida de videos — Upload directo a Cloudinary con metadatos automáticos
- 🎯 Tres modos de procesamiento:
vertical— Convierte el video completo a 9:16short_auto— Selecciona automáticamente el mejor segmentoshort_manual— Tú decides el segmento de inicio y duración
- 📊 Seguimiento en tiempo real — Consulta el progreso de cada job mediante polling
- 🎨 Fondos personalizables — Smart crop, fondo difuminado o fondo negro
- 📥 Galería de resultados — Accede a todos tus videos procesados con sus URLs de descarga
- 🔔 Notificaciones por email — Recibe un aviso cuando tu video está listo
Elevideo está compuesto por tres servicios independientes que se comunican entre sí:
┌─────────────────────────────────────────────────────────┐
│ Usuario / Browser │
└───────────────────────────┬─────────────────────────────┘
│ HTTPS
▼
┌─────────────────────────────────────────────────────────┐
│ Frontend (React + Tailwind CSS) │
│ elevideo.vercel.app │
└───────────────────────────┬─────────────────────────────┘
│ REST API + JWT
▼
┌─────────────────────────────────────────────────────────┐
│ Backend Spring Boot (Monolito Modular) │
│ elevideo-ec.onrender.com │
│ │
│ auth │ user │ project │ video │ processing │ notif. │
└──────────────┬───────────────────────┬──────────────────┘
│ HTTP + JWT delegado │ Webhooks
│ │ (X-Service-Key)
▼ │
┌──────────────────────────┐ │
│ Microservicio Python │───────────┘
│ FastAPI + MediaPipe │
│ (solo local ⚠️) │
└──────────────────────────┘
- El usuario sube un video desde el frontend → se almacena en Cloudinary
- Crea un job de procesamiento → Spring Boot registra el job y llama al microservicio Python
- Python descarga el video, aplica detección de rostros con MediaPipe, estabilización cinematográfica y encoding con FFmpeg
- El resultado se sube a Cloudinary y Python notifica a Spring Boot vía webhook
- Spring Boot actualiza el job y guarda la rendition con las URLs de descarga
- El usuario recibe un notificacion en su navegagador y puede ver el resultado en su galería de videos procesados
| Servicio | URL | Estado |
|---|---|---|
| 🎨 Frontend | elevideo.vercel.app | ✅ Desplegado |
| ⚙️ Backend API (Swagger) | elevideo-ec.onrender.com/swagger-ui/index.html | ✅ Desplegado |
| 🐍 Microservicio Python | — |
¿Por qué el microservicio Python no está desplegado?
El procesamiento de video con MediaPipe, OpenCV y FFmpeg es una tarea intensiva en CPU y memoria RAM. Los planes gratuitos de plataformas como Render o Railway no ofrecen los recursos suficientes para ejecutarlo de forma estable. Para usarlo es necesario correrlo localmente o en un servidor propio con recursos adecuados.
elevideo/
├── backend/ ← API REST Spring Boot (monolito modular)
├── frontend/ ← Interfaz de usuario React.js
└── video-processor/ ← Microservicio de procesamiento Python FastAPI
Cada servicio tiene su propio README con instrucciones detalladas de instalación y configuración:
| Tecnología | Versión | Uso |
|---|---|---|
| Java | 17 | Lenguaje principal |
| Spring Boot | 3.5.11 | Framework REST |
| Spring Modulith | 2.0.3 | Arquitectura de monolito modular |
| Spring Security + JJWT | 0.12.5 | Autenticación JWT |
| PostgreSQL | — | Base de datos relacional |
| Spring Data JPA | — | Persistencia |
| MapStruct | 1.6.3 | Mapeo de objetos |
| Cloudinary SDK | 1.39.0 | Almacenamiento de video |
| Thymeleaf + Resend | — | Emails transaccionales |
| SpringDoc OpenAPI | 2.8.15 | Documentación Swagger |
| Tecnología | Uso |
|---|---|
| React.js (JS ES6+) | Interfaz de usuario reactiva |
| Tailwind CSS | Estilos utilitarios |
| CRACO | Configuración personalizada sin eject |
| PostCSS | Procesamiento de CSS |
| Tecnología | Uso |
|---|---|
| Python 3.11+ | Lenguaje principal |
| FastAPI | Framework REST asíncrono |
| MediaPipe | Detección de rostros |
| OpenCV | Procesamiento de fotogramas |
| FFmpeg | Encoding y filtros de video |
| NumPy | Cálculos de estabilización |
| Cloudinary SDK | Subida del video procesado |
Este proyecto fue desarrollado por un equipo multidisciplinar en el marco de una simulación laboral de No Country.