Étape 2: Convertir l’image au fichier audio SSTV
Ensuite, nous devons convertir l’image au fichier audio qui peut être transmis en direct. Il existe plusieurs implémentations de SSTV pour le Raspberry Pi.
PySSTV
Tout d’abord, j’ai jeté un oeil à PySSTV, une implémentation de Python qui peut être installée à l’aide de pip :
pi ~/sstv $ sudo apt-get install python-setuptools pi ~/sstv $ sudo apt-get install python-imaging pi ~/sstv $ sudo easy_install pip pi ~/sstv $ sudo pip install setuptools --no-use-wheel --upgrade pi ~/sstv $ sudo pip install PySSTV
Cela fonctionne, mais c’est très slooooooooooooow, il faut plusieurs minutes pour convertir une seule image. Alors j’ai continué à chercher une autre option.
C mise en œuvre
Ensuite, j’ai trouvé une application C clair ici : https://sites.google.com/site/ki4mcw/Home/sstv-via-uc malheureusement il y a quelques erreurs dans les tons du préambule, mais ils étaient faciles à corriger. Je l’ai fait aussi un peu plus souple afin que vous pouvez définir la fréquence d’échantillonnage à partir de la ligne de ligne de commande. Source de mon application se trouvent sur GitHub. Pour compiler le code source :
pi ~/sstv $ sudo apt-get install libgd2-xpm-dev pi ~/sstv $ sudo apt-get install libmagic-dev pi ~/sstv $ gcc -lm -lgd -lmagic -o pisstv pisstv.c
Pour exécuter le programme :
pi ~/pisstv $ ./pisstv /tmp/image.png 22050 Constants check: rate = 22050 BITS = 16 VOLPCT = 20 scale = 6553 us/samp = 45.351474 2p/rate = 0.000285 Checking filetype for file [/tmp/image.png] File is a PNG image. Input file is [/tmp/image.png]. Output file is [/tmp/image.png.wav]. Writing audio data to file. Got a total of [2589556] samples. Done writing to audio file. Created soundfile in 4 seconds.
Comme vous pouvez voir que le fichier sonore SSTV est créé en 4 secondes seulement. So far so good, prochaine étape, comment transmettre l’audio en direct.