57a1854a16b091be75006f8993fe68b2181049a7
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
# 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.mdpara 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
# 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
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 detectadoshighlights_*.json- Timestamps de highlightstranscripcion_*.json- Transcripciones Whisper
🎬 Salidas
El sistema genera:
HIGHLIGHTS_FINAL.mp4- Video de highlights (5-10 minutos)HIGHLIGHTS_FINAL.json- Timestamps de clipsgameplay_*.json- Mapa de segmentos de gameplay
🔬 Metodología
Detección de Gameplay
Usa análisis multi-factor:
- Variación de color - Gameplay tiene más movimiento
- Canal verde - Mapa de LoL es predominantemente verde
- Detección de bordes - UI de LoL tiene bordes definidos
- VLM - Clasificación visual con modelo de lenguaje
Detección de Highlights
Combina 4 señales:
- Rage keywords - "puta", "mierda", "me mataron"
- Picos de chat - Mensajes/segundo
- Picos de audio - Volumen/gritos
- Contexto temporal - Extensión inteligente de clips
🛠️ Troubleshooting
Out of Memory
# 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 XTcontexto.md- Contexto del proyectoGPU_ANALYSIS.md- Análisis de rendimiento GPU
🤝 Contribuir
- Fork del repositorio
- Crear branch:
git checkout -b feature/nueva-funcionalidad - Commit:
git commit -am 'Agregar funcionalidad X' - Push:
git push origin feature/nueva-funcionalidad - 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
Description
Languages
Python
97.1%
Shell
2.9%