2019-08-25 21:25:35 +02:00
|
|
|
# logstreamer
|
|
|
|
|
2019-08-27 11:05:16 +02:00
|
|
|
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.
|
2019-08-25 21:29:58 +02:00
|
|
|
|
|
|
|
|
|
|
|
## Prérequis
|
|
|
|
|
|
|
|
* python3
|
2019-08-26 13:42:33 +02:00
|
|
|
* libshout
|
2019-08-26 13:26:29 +02:00
|
|
|
* python-shout (```pip3 install python-shout```)
|
2019-08-26 13:42:33 +02:00
|
|
|
* 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
|
2019-08-25 21:29:58 +02:00
|
|
|
|
2019-08-27 11:05:16 +02:00
|
|
|
|
2019-08-25 21:29:58 +02:00
|
|
|
## Utilisation
|
|
|
|
|
2019-08-26 13:56:29 +02:00
|
|
|
```shell
|
2019-08-27 10:54:34 +02:00
|
|
|
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)
|
2019-08-26 13:21:55 +02:00
|
|
|
```
|
2019-08-27 10:45:25 +02:00
|
|
|
|
2019-08-27 11:05:16 +02:00
|
|
|
## Exemple
|
|
|
|
|
|
|
|
```
|
2019-08-27 11:07:00 +02:00
|
|
|
logstreamer.py --log /var/log/messages \
|
|
|
|
--host serviette.tetalab.org \
|
|
|
|
--port 8000 \
|
|
|
|
--user tetalab \
|
|
|
|
--password XXXXXX \
|
|
|
|
--mount /radiology.m4a
|
2019-08-27 11:05:16 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
2019-08-27 10:45:25 +02:00
|
|
|
## Démo
|
|
|
|
|
|
|
|
[http://serviette.mixart-myrys.org:8000/radiology.m4a](http://serviette.mixart-myrys.org:8000/radiology.m4a)
|