LogStreamer est un logiciel permettant la diffusion sonore d'un fichier via un serveur Icecast
Go to file
2019-08-27 20:07:00 +11:00
.gitignore Initial commit 2019-08-25 21:25:35 +02:00
LICENSE Initial commit 2019-08-25 21:25:35 +02:00
logstreamer.py Ajout option --ice_buffer 2019-08-27 19:46:56 +11:00
README.md README: More to read 2019-08-27 20:07:00 +11:00

logstreamer

LogStreamer est un logiciel permettant la diffusion sonore d'un fichier texte (mais pas que) via un serveur de streaming Icecast.

La position dans la table des caractères de chaque caractère du fichier est convertie en une fréquence qui est échantillonée en fonction des paramètres passés en option.

L'ensemble constituera un fichier WAV qui sera ensuite converti en OGG avant d'être envoyé vers un serveur Icecast pour diffusion.

Prérequis

  • python3
  • libshout
  • python-shout (pip3 install python-shout)
  • vorbis-tools

Les utilisateurs de distributions moisies basées sur Debian et/ou CentOS/RHEL (CentOS/Debian y compris) devront au préalable installer les paquets suivants:

  • python3-dev
  • libshout3-dev

Utilisation

logstreamer.py --help
usage: logstreamer.py [-h] --log LOG --host HOST --port PORT --user USER
                      --password PASSWORD --mount MOUNT [--workdir WORKDIR]
                      [--duration DURATION] [--amplitude AMPLITUDE]
                      [--framerate FRAMERATE] [--adjust ADJUST ADJUST]
                      [--exclude [EXCLUDE [EXCLUDE ...]]]
                      [--protocol PROTOCOL] [--ice_buffer ICE_BUFFER]
                      [--debug DEBUG]

optional arguments:
  -h, --help            show this help message and exit
  --log LOG             Le fichier de log à traiter (requis)
  --host HOST           Server Icecast2 (requis)
  --port PORT           Port TCP sur lequel contacter le serveur Icecast2
                        (requis)
  --user USER           Nom d'utilisateur (requis)
  --password PASSWORD   Mot de passe (requis)
  --mount MOUNT         Point de montage Icecast2 (requis)
  --workdir WORKDIR     Le répertoire de travail (défaut: /tmp)
  --duration DURATION   La durée d'une note (défaut: 0.008)
  --amplitude AMPLITUDE
                        Le niveau sonore (défaut: 0.5)
  --framerate FRAMERATE
                        Le taux d'échantillonage (défaut: 44100)
  --adjust ADJUST ADJUST
                        Facteurs d'ajustement (défaut: 5000 20000)
  --exclude [EXCLUDE [EXCLUDE ...]]
                        Liste des caractères non traités (défaut: [])
  --protocol PROTOCOL   Protocole à utiliser (défaut: http)
  --ice_buffer ICE_BUFFER
                        Taille du tampon Icecast (défaut: 32768)
  --debug DEBUG         Affiche l'activité (défaut: False)

Exemple

logstreamer.py --log /var/log/messages \
               --host serviette.tetalab.org \
               --port 8000 \
               --user tetalab \
               --password XXXXXX \
               --mount /radiology.m4a

Démo

http://serviette.mixart-myrys.org:8000/radiology.m4a