Aprende a convertir un archivo de audio SSTV en una imagen usando QSSTV en tu escritorio Ubuntu 18.04.

Cómo convertir (decodificar) un archivo de audio de transmisiones de televisión de escaneo lento (SSTV) en imágenes usando QSSTV en Ubuntu 18.04

En tutoriales anteriores, escribimos sobre cómo crear un archivo de audio SSTV a partir de una imagen , para que pueda transmitir fácilmente una imagen dentro de las frecuencias de audio, cosas bastante interesantes. Sin embargo, es bastante complicado encontrar una forma de decodificar dicho audio y convertirlo en una imagen nuevamente con algún programa disponible. Aunque el proceso probablemente no sea nada fácil, se puede realizar en plataformas Linux utilizando la aplicación QSSTV.

En este artículo, le mostraremos cómo decodificar un archivo de audio SSTV de múltiples formatos usando QSSTV en Ubuntu Desktop 18.04.

1. Instale QMake

QSSTV se ha desarrollado y probado en Qt 5. Ya no se mantiene en las versiones anteriores de Qt. Qt es un marco de desarrollo de aplicaciones multiplataforma para escritorio, integrado y móvil. Las plataformas compatibles incluyen Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS y otras.

Para compilar QSSTV desde la fuente, deberá instalar todas las bibliotecas necesarias para evitar cualquier error de compilación, todos los paquetes en Ubuntu se pueden instalar con el siguiente comando:

# A. Instale todos los paquetes en un solo comando
sudo apt-get install qt5-default libopenjp2-7-dev libpulse-dev libv4l-dev libasound2-dev libgtk-3-dev libfftw3-dev

O si prefiere instalar paquete por paquete:

# B. O instale un paquete a la vez
sudo apt-get install qt5-default

sudo apt-get install libopenjp2-7-dev

sudo apt-get install libpulse-dev

sudo apt-get install libv4l-dev

sudo apt-get install libasound2-dev

sudo apt-get install libgtk-3-dev

sudo apt-get install libfftw3-dev

Después de la instalación de estos paquetes, puede continuar con la instalación de los otros componentes.

2. Instalar Hamlib

Necesitará Hamlib instalado en su sistema para ejecutar correctamente QSSTV, el propósito de este proyecto es proporcionar bibliotecas compartidas estables, flexibles que permitan un desarrollo más rápido de aplicaciones de control de equipos de radioaficionados.

Muchos transceptores de radioaficionados vienen con interfaces seriales que permiten que el software controle la radio. Este proyecto se esforzará por proporcionar bibliotecas compartidas que simplifiquen enormemente la interacción del programador de aplicaciones con equipos de radio y otros dispositivos controlables como rotores, interruptores, etc. Para instalar hamlib en su sistema, simplemente ejecute el siguiente comando en su terminal:

sudo apt-get install hamlib-dev

Para obtener más información sobre Hamlib, visite el repositorio oficial en Github aquí .

3. Instale pavucontrol

Para administrar las fuentes de salida de audio, necesitará Pavucontrol disponible en su sistema. PulseAudio es un sistema de sonido para sistemas operativos POSIX, lo que significa que es un proxy para sus aplicaciones de sonido. Le permite realizar operaciones avanzadas en sus datos de sonido a medida que pasan entre su aplicación y su hardware. PulseAudio ofrece una interfaz gráfica para manejar dispositivos de audio, a saber, pavucontrol. Puede instalar esta herramienta con el siguiente comando:

sudo apt-get install pavucontrol

Después de la instalación, podrá abrir este programa desde la línea de comandos escribiendo pavucontrol.

3. Descarga QSSTV

QSSTV es un programa para recibir y transmitir SSTV y HAMDRM (a veces llamado DSSTV). Es compatible con la mayoría de MMSSTV y EasyPal. Afortunadamente, no necesitamos compilar este paquete desde la fuente, ya que hay una versión aceptable del programa disponible en los repositorios predeterminados de Ubuntu. Proceda a instalar la herramienta con:

sudo apt-get install qsstv

Esto instalará un programa que puede iniciar desde la línea de comando escribiendo en la terminal:

qsstv

La ventana se verá así:

QSSTV Desktop Ubuntu Application

Usaremos esta aplicación para decodificar el archivo de audio en una imagen más tarde, después de configurar desde dónde debe recibir la salida QSSTV. Para obtener más información sobre QSSTV, visite la página web oficial aquí .

4. Configuración de QSSTV

En primer lugar, deberá cargar un módulo PulseAudio llamado "module-null-sink". Para cargarlo manualmente cuando lo necesite, desde la pantalla de su shell ejecute el siguiente comando, lo nombraremos como virtual-cable:

pactl load-module module-null-sink sink_name=virtual-cable

Este comando imprimirá su ID de módulo pactl en la terminal si se creó con éxito. Siempre que no se hayan reportado errores, puede ignorar el número impreso por pactl. Aunque Pulseaudio se puede modificar mejor desde la línea de comandos, la GUI de pavucontrol me resulta muy útil y ahorra tiempo. Ejecútelo como:

pavucontrol

Después de iniciar la aplicación, vaya a la pestaña Dispositivos de salida para verificar que tiene el dispositivo de Salida nula (disponible después de ejecutar el comando pactl):

Pavucontrol Output Devices

Después de verificar que la salida nula existe en su sistema, inicie QSSTV (construido en el paso anterior) y vaya a Opciones, luego Configuración y abra la pestaña Sonido. En esta ventana, debe asegurarse de que la interfaz PulseAudio esté seleccionada en lugar de cualquier otra:

PulseAudio Interface QSSTV Ubuntu

Después de guardar los cambios, regrese nuevamente a la ventana de pavucontrol . Como sabe, QSSTV necesita grabar el audio de algún archivo reproducido en su sistema después de la configuración de este tutorial, por lo que deberá especificar que QSSTV debe capturar el audio de nuestra salida nula :

Recording Pavucontrol QSSTV Capture from Monitor of Null Output

Luego de guardar esta configuración, podremos reproducir un archivo de audio con datos SSTV desde la línea de comando que será decodificado por el programa QSSTV fácilmente.

5. Decodificación y archivo de audio

Puede reproducir el archivo de audio con datos SSTV desde la línea de comandos usando paplay(disponible de forma predeterminada en Ubuntu), por lo que simplemente puede ejecutar el siguiente comando en la terminal para reproducir el audio (reemplace la ruta del archivo de audio con la suya):

Recuerde que puede aprender a convertir una imagen en un archivo de audio en representación Martin1 si sigue este tutorial , el archivo de salida del tutorial mencionado se puede decodificar en este artículo:

paplay -d virtual-cable youraudiofile.wav

Ahora, si cambia a la ventana QSSTV, verá que comenzará a decodificar el audio progresivamente:

QSSTV Decoding Martin1 Data

Y así:

QSSTV Decode Audio Martin 1 Progressively

Hasta que termine el audio y tengas la salida de la imagen completa:

QSSTV Decode Image from Martin1 SSTV Audio

Las imágenes se almacenarán normalmente en el /home/{youruser}/qsstv/rx_sstv/directorio. Y eso es todo, esa es la forma más fácil de decodificar un archivo de audio SSTV en formato Martin1 en una imagen en el escritorio Ubuntu 18.04.

6. Restaurar audio en el sistema

Ahora, observe que si intenta reproducir algo de audio como de costumbre, abre youtube o algo así, no escuchará nada ya que tenemos un cable virtual montado en el sistema, por lo que la salida se redirigirá a él. Para restaurar la salida de audio predeterminada de su sistema, simplemente enumere como primero todos los dispositivos de audio con:

pactl list short modules

Esto generará una salida similar a:

Pact List Modules

Como puede ver, el dispositivo creado en el paso # 4 tiene el identificador 27. Necesita descargar este módulo usando el siguiente comando:

# En nuestro caso, el módulo es el # 27
pactl unload-module 27
# pactl unload-module {number}

Después de descargar el módulo, el audio de su sistema se restaurará por defecto.

Este tutorial es una recopilación de múltiples fuentes que también pueden ser útiles para ti si pruebas con otros formatos:

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores