Frameblink

Desarrollo

Descripción

El patrón visual A→B→A —el fotograma del medio cambia y el siguiente se parece más al primero— se rankea reduciendo cada frame decodificado a 202 píxeles en escala de grises y puntuando min(MAD(A,B), MAD(B,C)) − MAD(A,C). Así te quedas con un puñado de triples reales (antes / candidato / después) para inspeccionar, no con cientos de imágenes ni con un extractor de cortes que se salta el glitch de un solo fotograma.

Un comando local escribe una página de revisión, PNG etiquetados y JSON compacto que un agente de código puede consultar. Lee solo un MP4 o WebM de como máximo 100 MiB, 60 segundos y 1.800 frames (ningún lado por encima de 4.096 píxeles) y escribe únicamente en un directorio nuevo: no sube el vídeo, no llama a un modelo, no inicia sesión ni envía telemetría.

Alcance del preview

Encaja cuando la grabación muestra un estado de UI que parpadea o salta y vuelve. Una puntuación alta no es veredicto de bug ni prueba de causa: un gesto rápido, un artefacto del encoder o el cursor también pueden puntuar. No resume vídeo, no interpreta acciones ni persigue cambios duraderos. Python 3.11 o superior; se instala con una rueda de GitHub, no está en PyPI. El código de salida 0 incluye el caso válido sin candidatos.

  • Umbral por defecto 0,1 y como máximo 12 eventos
  • Índices de fotograma en base cero; marcas de tiempo del decodificador
  • Revisa cada salida antes de compartirla: los PNG muestran píxeles del origen

Tecnologías y temas

  • agentes de código

    HTML de revisión, triples PNG y JSON compacto para consultar qué frames inspeccionar

  • CLI Python

    Comandos scan y demo sobre MP4/WebM, con umbral, tope de eventos y límites de tamaño

  • Local-first

    No sube el vídeo ni envía telemetría; solo lee el archivo y escribe en un directorio nuevo

  • Patrón A-B-A

    Rankea retornos visuales de un fotograma y coloca el antes, el candidato y el después lado a lado