La televisión de barrido lento (Slow ScanTV, SSTV) es un método para transmitir y recibir imágenes estáticas (en blanco y negro o color) a través de la radio.
Es lento y lo utilizan la gente aficionada a la radio para transmitir imágenes que quienes estén capturando podrán decodificar.
El motivo de este post es simplemente para comentar que desde GNU+Linux podemos hacerlo y que además en el juego Portal (valve, 2007) es posible capturar el sonido y decodificarlo para ver las imágenes que ocultaron en el juego.
En este vídeo de 2 minutos se puede escuchar como en el juego se emiten imágenes SSTV .
La forma de hacer esto va a ser creando un dispositivo de audio virtual y luego utilizando el programa QSSTV .
Instalar QSSTV
A mi no tienes que contarme como instalas qsstv. Si usas debian lo mismo lo haces tirando de apt, en arch de pacman o en distros rollo Red Hat usando yum.
No es mi problema. El tema es que si quieres decodificar los audios del juego necesitarás eso, los audios y el software qsstv (u otro que permita lo mismo).
Los audios de ejemplo capturados del juego
Para evitar rollos he sacado 4 muestras de audio en archivos wav.
Muestras del juego para que no tengas que estar decodificando al vuelo desde el juego y que no tengas ni que tener el juego.
Muestra 001: 56k.es/downloads/SSTV_portal001-fanta.wav
Muestra 002: 56k.es/downloads/SSTV_portal002-fanta.wav
Muestra 003: 56k.es/downloads/SSTV_portal003-fanta.wav
Muestra 004: 56k.es/downloads/SSTV_portal004-fanta.wav
Esos audios llevan el regalo en su interior. Interpretados correctamente tendrían que mostrar imágenes como las que se ven en el siguiente gif:
El proceso para sacar las imágenes de los audios
Vamos a crear un dispositivo de audio virtual. Una salida nula.
Esto podemos hacerlo como root así:
pactl load-module module-null-sink sink_name=virtual-cable
Si nos vamos a la configuración de sonido tendríamos que poder elegir algo así como salida nula, salida boba, dumb, … y la elegiremos.
Y lanzando pavucontrol en grabación tendríamos que poder elegir monitor of Salida Nula (o similar) para el programa QSSTV.
Finalmente en la configuración del programa QSSTV hemos de elegir que la entrada de sonido (Sound Input) venga desde la tarjeta de sonido (from sound card) hasta la salida de sonido (Sound Output) tarjeta de sonido también.
Es posible que lo tengamos así por defecto pero por si acaso adjunto captura de como lo tengo yo.
Bien. Pues con esto bien configurado ya podemos emitir desde vlc lo que queramos que capture QSSTV.
O incluso pinchando desde el navegador en los audios para que se reproduzcan y ver como allí se va mostrando la imagen.
Se le ha de dar a play en la pestaña Receive . A la derecha veremos la onda y si va pintando entonces nos alegraremos y se lo contaremos a alguien cercano.
Es fascinante y una frikada
Es una frikada que metiesen esto en el juego y otra que la gente lo sacase. Me imagino a la primera persona que escucho los soniquetes y pensó en … «esto o bien es morse, SSTV, el ruido de un modem a 56k o algo». Y se puso a trastear hasta sacar las imágenes :).
Y más o menos eso es todo lo que quería contar en este post.
Saludos cordiales.
Excelente, aunque tuve que hacer una que otra cosa de forma distinta en Slackware(64) 15.0
Hacerlo en Slackware(64) 15.0 y Derivadas ( Porteus, Salix,etc . . . )
01 – Instalar qsstv, yo lo hare usando el gestor de paquetes slapt-get
su -c «slapt-get –update ; slapt-get –install qsstv ; ldconfig» root
02 – Editar el archivo predeterminado de pulseaudio
sudo joe /etc/pulse/default.pa
Dentro del archivo « /etc/pulse/default.pa » Descomentar la linea
Original -> # load-module module-null-sink
Debe quedar -> load-module module-null-sink
Guardarlos cambios y salir del editor de texto
03 – Eliminar la conexion actual de pulseaudio y luego volverla a iniciar
pulseaudio –kill
pulseaudio –start
04 – Listar la lista de modulos en uso y filtrar « null »
comando :
pactl list modules short | grep null
salida del comando :
5 module-null-sink
05 – Descargar / Deshabilitar el modulo 5 actual que es « module-null-sink »
pactl unload-module 5
06 – Iniciar un nuevo modulo-null-sink y establecerle de nombre « virtual-cable »
Comando :
pactl load-module module-null-sink sink_name=virtual-cable
Salida del comando :
24
La salida del comando anterior me indica que le asigno el numero 24 al modulo, en caso de que quieras Descargarlo / deshabilitarlo, lo podras hacer como se hizo con el modulo 5 anteriormente.
07 – Listar los modulos en uso, y filtrar todo lo que diga « null »
Comando :
pactl list modules short | grep null
Salida del comando :
24 module-null-sink sink_name=virtual-cable
Asi ya quedo listo las cosas necesarias para usarlas a traves de PulseAudio.
08 – Abre qsstv y abre « Options » -> « Configuration »
En « Audio Interface » selecciona « PulseAudio »
En « Sound Input » selecciona la opcion « From Sound Card »
En « Sound Output » selecciona la opcion « To sound card »
Presiona OK, y luego en la pestaña « Recieve » has clic en el icono de « Start Reciever »
09 – En algun otro programa, abre el audio de Radio con el que desees trabajar en conjunto con QSSTV.
10 – Ahora en el pavucontrol ve a la pestaña « Grabacion » y fijate que QSSTV indique « Salida Nula »
11 – Ahora en el pavucontrol ve a la pestaña « Reproduccion » y fijate que tanto QSSTV como VLC indiquen « Salida Nula »
Estos ultimos 2 pasos pueden ser un poco truculentos, ya que a veces el VLC a aparece y a veces no pero prueba de varias formas hasta que aparezca, y puedas establecer « Salida Nula »
Ahora si deberias poder procesar las imagenes a partir de los sonidos del juego.
Yo en la Ventana de QSSTV, estableci
– AutoSlant : Activo
– Sensivity : DX
– Mode : Auto
– Default Image Format : png
– Save If Complete (%) : 97
Ahora ve a la ventana de QSSTV presiona sobre el boton Recieve. Cuando pongas a reproducir un audio compatible
Luego solo reproduce un audio compatible, desde VLC o cualquier otro programa (Que le hayas asignado salida nula )
Y al reproducirse el audio automaticamednt deberia procesar la imagen.
—————————————————— Modos —————————————————————
Del Videojuego portal al parecer los modos compatibles son :
Auto -> Dependiendo del audio, va a seleccionar uno automaticamente y suele ser suficiente
Martin 1
Robot 36 -> Con este la primera imagen se ve mejor.
Robot 72
MP115
MR115