@ -8,11 +8,14 @@
@@ -8,11 +8,14 @@
Avertissement : pour le moment\footnote { En juillet 2014} , nous
n'allons nous pencher que sur la diffusion de flux audios, avec
des encodages libres comme \textsl { ogg} ou \textsl { speex} .
Tout simplement parce que le monde de la vidéo est un gigantesque
foutoir de codecs, de containers, de brevets logiciels et
d'incompatiblités diverses et variées.
Une notion importante à bien comprendre, c'est l'organisation
du flux des sons immatériels au travers des intertubes.
\textbf { insert picture here !} \index { XXX}
% -------------------------------------------------------------
\section { icecast2}
@ -261,6 +264,53 @@ pour arriver à tenter de comprendre pouquoi ça ne fonctionne pas,
@@ -261,6 +264,53 @@ pour arriver à tenter de comprendre pouquoi ça ne fonctionne pas,
alors que tout semble correct.
% ====================================================================
\section { Gadgets}
On peut aussi imaginer des \textsl { client sources} plus ésotériques.
L'exemple classique étant l'utilisation de la synthèse vocale pour
faire une horloge parlante. Mais comme tout vieux linuxien, j'attache
un intérêt tout particulier à une valeur symbolique~:
l'uptime de ma machine.
En ces temps troublés\footnote { Début janvier 2021, le collectif
d'artistes Mixart-Myrys, dont je fais partie depuis dix ans,
ext en train de se faire salemenr éjecter de son hangartistique.
À cette occasion, j'ai remonté \textit { à la rache} un Icecast,
et je l'ai voulu un peu surprent, d'où l'uptime parlé.} ,
l'uptime, c'est important.
\lstinputlisting { code/say-uptime.sh}
L'option \texttt { -p} de la commande \texttt { uptime} permet d'obtenir
une sortie de cette forme : \textsf { up 1 day, 1 hour, 37 minutes}
qu'une micromagie \texttt { sed} change en une forme plus correcte
syntaxiquement, bien qu'anglo-saxonne.
La ligne suivante sert uniquement d'affichage de contrôle, et peut
être supprimée sans vergogne.
\label { say-uptime}
Les trois lignes suivantes vont effectivement généré le son qui sera
envoyé vers la radio\index { radio} de l'Internet.
Premier élémént du pipeline, \texttt { espeak-ng} reçoit le texte
par son \textsl { stdin} et génère le flux de
parole sur son \textsl { stdout} , à partir des options
\texttt { -g 9 -s 150 -a 133} , réglant la voix synthétique.
Ensuite, il faut que les échantillons sonores soient au format
physique attendu par le diffuseur,
d'où la conversion en 2$ x $ 16 bits. Et pour finir, il est
encodé/encapsulé dans du OggVorbis\index { ogg} que le
\textsl { yuser} final ne pourra peut-être pas écouter sur
son \textsf { iPhone} .
Quand à la dernière ligne \texttt { ~/bin/sender} c'est un programme,
basé sur \texttt { libshout} , qui va gérer l'authentification et
le transfert des données vers un point d'entrée du serveur icecast.
Voilà, c'est tout pour le moment.
% ====================================================================