Files
2026-02-19 17:39:42 +00:00

177 lines
4.9 KiB
Markdown

# Twitch Highlight Detector 🎮
Sistema avanzado de detección de highlights para streams de Twitch usando VLM (Vision Language Models) y análisis de contexto.
## 🎯 Características
- **Detección de Gameplay Real**: Usa análisis visual para distinguir entre gameplay, selección de campeones y streamer hablando
- **VLM Integration**: Compatible con Moondream, Video-LLaMA, Qwen2-VL
- **Multi-Modal**: Combina Whisper (audio), Chat (texto), Video (visión) y Audio (picos)
- **GPU Accelerated**: Optimizado para RTX 3050 (4GB) y RX 6800 XT (16GB)
- **Pipeline Automatizado**: Descarga → Análisis → Generación de video en un solo comando
## 🚀 Uso Rápido
```bash
# Detectar highlights en un stream
python3 highlight_generator.py --video stream.mp4 --chat chat.json --output highlights.mp4
# O usar el sistema completo con VLM
python3 scene_detector.py # Detecta segmentos de gameplay
python3 extract_final.py # Extrae highlights
python3 generate_video.py --video stream.mp4 --highlights final_highlights.json
```
## 📁 Archivos Principales
| Archivo | Descripción |
|---------|-------------|
| `highlight_generator.py` | Detector híbrido unificado (recomendado) |
| `scene_detector.py` | Detección de cambios de escena con FFmpeg |
| `gpu_detector.py` | Análisis de frames en GPU |
| `vlm_analyzer.py` | Análisis con VLM (Moondream/LLaVA) |
| `chat_sync.py` | Sincronización de chat con video |
| `6800xt.md` | **Guía completa para RX 6800 XT** |
## 🎮 Hardware Soportado
### RTX 3050 (4GB VRAM) - Configuración Actual
- Modelo: Moondream 2B
- Procesamiento: Frame por frame
- Tiempo: ~20 min para 2 horas de video
### RX 6800 XT (16GB VRAM) - Mejor Opción
- Modelo: Video-LLaMA 7B o Qwen2-VL 7B
- Procesamiento: Batch de frames
- Tiempo: ~5-8 min para 2 horas de video
- Ver: `6800xt.md` para instrucciones completas
## 📊 Pipeline de Trabajo
```
Video (2.3h)
[Scene Detection] → Segmentos de 30s-5min
[Clasificación] → GAMEPLAY / SELECT / TALKING / MENU
[Filtrado] → Solo segmentos GAMEPLAY
[Análisis Multi-Modal]
- Whisper: Transcripción + Keywords
- Chat: Picos de actividad
- Audio: Detección de gritos
- VLM: Confirmación visual
[Extracción] → Mejores momentos de cada segmento
[Generación] → Video final concatenado
```
## 🔧 Instalación
### Requisitos
- Python 3.10+
- CUDA/ROCm compatible
- FFmpeg con CUDA
### Setup
```bash
# Entorno Python
python3 -m venv vlm_env
source vlm_env/bin/activate
# Dependencias base
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate opencv-python pillow
pip install openai-whisper scipy numpy
# Para RTX 3050 (actual)
./install_vlm.sh
# Para RX 6800 XT (próximo)
# Ver 6800xt.md
```
## 📝 Configuración
### Variables de Entorno
```bash
export CUDA_VISIBLE_DEVICES=0 # Seleccionar GPU
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
```
### Archivos de Configuración
- `gameplay_scenes.json` - Segmentos de gameplay detectados
- `highlights_*.json` - Timestamps de highlights
- `transcripcion_*.json` - Transcripciones Whisper
## 🎬 Salidas
El sistema genera:
- `HIGHLIGHTS_FINAL.mp4` - Video de highlights (5-10 minutos)
- `HIGHLIGHTS_FINAL.json` - Timestamps de clips
- `gameplay_*.json` - Mapa de segmentos de gameplay
## 🔬 Metodología
### Detección de Gameplay
Usa análisis multi-factor:
1. **Variación de color** - Gameplay tiene más movimiento
2. **Canal verde** - Mapa de LoL es predominantemente verde
3. **Detección de bordes** - UI de LoL tiene bordes definidos
4. **VLM** - Clasificación visual con modelo de lenguaje
### Detección de Highlights
Combina 4 señales:
1. **Rage keywords** - "puta", "mierda", "me mataron"
2. **Picos de chat** - Mensajes/segundo
3. **Picos de audio** - Volumen/gritos
4. **Contexto temporal** - Extensión inteligente de clips
## 🛠️ Troubleshooting
### Out of Memory
```python
# Reducir batch_size o usar quantization
from transformers import BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(load_in_4bit=True)
```
### Lento
- Usar CUDA Graphs
- Reducir resolución de frames (320x180 → 160x90)
- Procesar en batches
### Precision baja
- Aumentar umbral de detección
- Usar modelo VLM más grande
- Ajustar ponderaciones de scores
## 📚 Documentación Adicional
- `6800xt.md` - Guía completa para RX 6800 XT
- `contexto.md` - Contexto del proyecto
- `GPU_ANALYSIS.md` - Análisis de rendimiento GPU
## 🤝 Contribuir
1. Fork del repositorio
2. Crear branch: `git checkout -b feature/nueva-funcionalidad`
3. Commit: `git commit -am 'Agregar funcionalidad X'`
4. Push: `git push origin feature/nueva-funcionalidad`
5. Crear Pull Request
## 📝 Licencia
MIT License - Libre para uso personal y comercial.
## 👥 Autores
- **IA Assistant** - Implementación inicial
- **renato97** - Testing y requisitos
---
**Nota**: Para configuración específica de RX 6800 XT, ver archivo `6800xt.md`