renato97 4cd1d475fe Sesión 19 Feb: OCR intentos, MCP op.gg, timestamps manuales, video final muertes
- Agregado intentos.md con registro de todos los fallos
- Actualizado contexto.md con sesión de noche
- MCP op.gg instalado (no funcionó - 0 matches)
- OCR con Tesseract y EasyOCR (falló - texto muy pequeño)
- Video final generado: HIGHLIGHTS_MUERTES_COMPLETO.mp4
- Juegos separados: JUEGO_1/2/3_COMPLETO.mp4
- 10 muertes secuenciales: 0/1→0/10
- Scripts de extracción automática con timestamps
2026-02-19 23:29:55 +00:00
2026-02-18 20:47:36 -03:00
2026-02-19 17:39:42 +00:00

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.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

# 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 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

# 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

Description
No description provided
Readme 238 KiB
Languages
Python 97.1%
Shell 2.9%