work on streaming

This commit is contained in:
tTh 2020-12-11 15:06:59 +01:00
parent 99eae15038
commit 2b73698aef

View File

@ -19,36 +19,37 @@ d'incompatiblités diverses et variées.
\index{icecast2} \index{icecast2}
\label{icecast2} \label{icecast2}
Icecast est, semble-t-il, \textbf{le} serveur de streaming de référence.
Il se configure facilement avec des fichiers en XML\index{XML}.
Première approche d'une ergonomie différente, vous êtes avertis.
\begin{quote} \begin{quote}
Icecast, the project, is a collection of programs and libraries for Icecast, the project, is a collection of programs and libraries for
streaming audio over the Internet. This includes: streaming audio over the Internet. This includes:
Icecast, the program that streams audio data to listeners, Icecast, the program that streams audio data to listeners,
libshout, a library for communicating with Icecast servers and libshout, a library for communicating with Icecast servers and
IceS\index{ices}, a program that sends audio data to Icecast servers Ices2\index{ices}, a program that sends audio data to Icecast servers
\end{quote} \end{quote}
Icecast est, semble-t-il, \textbf{le} serveur de stream de référence. Pour alimenter Icecast en son, il faut utiliser un
Il se configure facilement avec des fichiers en XML\index{XML}. \textsl{source-client} approprié. Le modèle recommandé
Première approche d'une ergonomie différente, vous êtes avertis. est \textbf{ices2} qui est détaillé un peu plus loin,
à la page \pageref{ices2}.
Il peut envoyer depuis une entrée audio (alsa, jack, pulseaudio...)
ou une playlistde fichiers \texttt{.ogg}\index{ogg}.
\textsl{more to come...} \textsl{more to come...}
%-------------------------------------------------------------
\section{idjc}
\index{idjc}
\begin{quote}
Internet DJ Console is an Internet radio application for making a
live radio show or podcast. Features include two main media players
with a crossfader, a jingle player, microphone signal processing
(compressor and noise gate)
\end{quote}
%------------------------------------------------------------- %-------------------------------------------------------------
\section{liquidsoap} \section{liquidsoap}
\index{liquidsoap} \index{liquidsoap}
Mais nous allonc commencer par un outil puissant, bien que
délicat à comprendre au premier abord~:
\texttt{https://www.liquidsoap.info/} \texttt{https://www.liquidsoap.info/}
\begin{quote} \begin{quote}
@ -95,17 +96,17 @@ Icecast2 en passant les paramètres nécessaires.
\subsection{10.20.0.23} \subsection{10.20.0.23}
Maintenant, voyons un exemple plus complet et plus réaliste, Maintenant, voyons un exemple plus complet et plus réaliste,
largement inspiré d'un tutoriel de la documentation officielle, largement inspiré d'un tutoriel de la documentation officielle,
et qui deviendra un de ces jours la base de Radio-Myrys : et qui deviendra un de ces jours la base de la nouvelle%
\footnote{L'ancienne ayant été fermée pour des raisons
incompréhensibles.} radio de Myrys~:
\begin{verbatim} \begin{verbatim}
set("log.file.path", "/tmp/savon.log") set("log.file.path", "/tmp/savon.log")
set("log.stdout", false) set("log.stdout", false)
default = single("loveme.ogg") default = single("loveme.ogg")
openbsd = playlist(mode="random", "files/openbsd.pls") openbsd = playlist(mode="random", "files/openbsd.pls")
others = playlist(mode="random", "files/others.pls") others = playlist(mode="random", "files/others.pls")
jingles = playlist( "files/jingles.pls") jingles = playlist( "files/jingles.pls")
@ -113,7 +114,6 @@ jingles = playlist( "files/jingles.pls")
radio = fallback([ switch([({ 5h-11h }, openbsd), radio = fallback([ switch([({ 5h-11h }, openbsd),
({ 11h-5h }, others)]), ({ 11h-5h }, others)]),
default]) default])
radio = random(weights=[1,12],[ jingles, radio ]) radio = random(weights=[1,12],[ jingles, radio ])
output.icecast( %vorbis, output.icecast( %vorbis,
@ -125,11 +125,9 @@ output.icecast( %vorbis,
\end{verbatim} \end{verbatim}
Ah bah oui, ça commence à être robuste, mais en fait c'est Ah bah oui, ça commence à être robuste, mais en fait c'est
assez simple à comprendre, et un peu plus compliqué à mettre presque simple à comprendre, et un peu plus compliqué à mettre
en œuvre. en œuvre.
On se retrouve vite face à un problème classique : On se retrouve vite face à un problème classique :
les différences de niveau sonore entre les divers morceaux. les différences de niveau sonore entre les divers morceaux.
Et comme on veut avancer sur d'autres choses, on rache un Et comme on veut avancer sur d'autres choses, on rache un
@ -153,6 +151,13 @@ s = rotate([pl2014, pl2013, ..., jingles])
output.icecast(..., s) output.icecast(..., s)
\end{verbatim} \end{verbatim}
\subsection{Take over the playlist}
XXX\index{XXX}
Il est également possible, avec liquidsoap, d'interrompre la
diffusion d'une playlist à partir d'une autre source
(fichier ou entrée audio), eventuellement externe.
\subsection{trucs divers} \subsection{trucs divers}
@ -170,6 +175,28 @@ la suite les uns des autres ;)
\section{Source clients} \section{Source clients}
\label{sourceclients} \label{sourceclients}
Il existe une foultitude de clients source pour abreuver icecast2.
%-------------------------------------------------------------
\subsection{ices2} \index{ices2} \label{ices2}
Premier mystère : comment faire le rapprochement entre
la déclaration du périphérique d'entrée
(\texttt{<param name="device">hw:1,0</param>}) et
l'équivalent dans le monde Alsa ?
La commande \texttt{arecord -L} va nous donner quelques
informations sur les « points d'entrée » utilisables.
Liste dont nous extrayons (par la pure pensée logique)
ce fameux nom de device~: \texttt{ plughw:CARD=Snowball,DEV=0}
XXX\index{XXX} que nous pouvons mettre dans le XML.
\textbf{Attention} si votre source est monophonique, comme
le microphone USB \textsc{Snowball} utilisé dans cet exemple,
il NE faut PAS mettre \textsl{downmix} à 1\dots
%------------------------------------------------------------- %-------------------------------------------------------------
\subsection{Ezstream} \subsection{Ezstream}
@ -195,8 +222,26 @@ interface (e.g. sound card), encodes it and sends it to a streaming server.
\subsection{VLC} \subsection{VLC}
\index{vlc} \index{vlc}
%-------------------------------------------------------------
\subsection{idjc}
\index{idjc}
\begin{quote}
Internet DJ Console is an Internet radio application for making a
live radio show or podcast. Features include two main media players
with a crossfader, a jingle player, microphone signal processing
(compressor and noise gate)
\end{quote}
%-------------------------------------------------------------
\subsection{Android} \index{Android}
Cool Mic \texttt{https://coolmic.net/} ?
%==================================================================== %====================================================================
\section{libshout}\index{libshout}\label{libshout} \section{libshout}\index{libshout}\label{libshout}
Mais c'est quoi ?\index{XXX} Mais c'est quoi ?\index{XXX}