HackIt’2022/Level2/EE30 Visual Legacy

En la prueba 2 estuvimos zanganeando. Buscábamos un parser que ya estuviera programado para que nos ayudara a interpretar el contenido del wav. Craso error. marcan siempre evita este tipo de pruebas y si crees que igual tienes que programar el script que interprete este formato… ya puedes ir abriendo el IDE.

El título de la prueba, Visual Legacy viene a indicarnos que el formato que buscamos es algo antiguo y que el wav está codificando imagen de vídeo.

Visual Legacy viene a indicarnos que el formato que buscamos es algo antiguo y codifica imagen de vídeo

Si abrimos con Audacity el wav, veremos algo como lo siguiente:

Cada bloque representa una línea de un frame de un vídeo. Si hacemos zoom sobre un bloque y contamos los sincronismos horizontales (ver siguiente imagen), veremos cuántas líneas tiene cada frame (241, uno arriba o uno abajo 🙂

Haciendo algo de zoom:

Los picos negativos representan una señal de sincronismo horizontal (puede verse mentalmente como un salto de línea). La señal recoge información acerca de la luminancia de cada pixel de la imagen que está capturando. La parte positiva puede llegar hasta 0,7V para el nivel de blanco, correspondiendo a 0V el negro  Más info: https://www.adictosaltrabajo.com/2015/05/21/senal-de-video/

Buscando «video signal» en Google Images, uno de los primeros resultados es este:

¿Podría ser una seña de PAL o NTSC video? (¿es suficientemente legacy? 🙂

¿Cómo saber cuándo termina un frame y empieza el siguiente? Hay una señal de sincronismo vertical:

Tres pulsos para marcar sincronismo vertical (empieza un nuevo frame)

Con toda esa información, nuestro compañero Joserra se curró un script en Python que iba extrayendo la luminancia de cada pixel. Formando líneas y frames, y exportando cada frame a un png.

El resultado son 12000 y pico frames del famoso vídeo de Rick Astley (cómo no, el Never gonna give you up). Podemos montar los frames para formar un vídeo por el que nos podamos desplazar cómodamente:

ffmpeg -r 60 -f image2 -s 241x385 -i decode%05d.png -vcodec libx264 -crf 25   test.mp4

Y pasándolo con FF, por fin, vemos la ansiada clave:

No llegamos a tiempo en el concurso, pero pudimos terminar la prueba y documentarla para el blog 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.