work on streaming
This commit is contained in:
parent
99eae15038
commit
2b73698aef
@ -19,36 +19,37 @@ d'incompatiblités diverses et variées.
|
||||
\index{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}
|
||||
Icecast, the project, is a collection of programs and libraries for
|
||||
streaming audio over the Internet. This includes:
|
||||
Icecast, the program that streams audio data to listeners,
|
||||
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}
|
||||
|
||||
Icecast est, semble-t-il, \textbf{le} serveur de stream 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.
|
||||
Pour alimenter Icecast en son, il faut utiliser un
|
||||
\textsl{source-client} approprié. Le modèle recommandé
|
||||
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...}
|
||||
|
||||
%-------------------------------------------------------------
|
||||
\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}
|
||||
\index{liquidsoap}
|
||||
|
||||
Mais nous allonc commencer par un outil puissant, bien que
|
||||
délicat à comprendre au premier abord~:
|
||||
\texttt{https://www.liquidsoap.info/}
|
||||
|
||||
\begin{quote}
|
||||
@ -95,17 +96,17 @@ Icecast2 en passant les paramètres nécessaires.
|
||||
|
||||
\subsection{10.20.0.23}
|
||||
|
||||
|
||||
Maintenant, voyons un exemple plus complet et plus réaliste,
|
||||
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}
|
||||
set("log.file.path", "/tmp/savon.log")
|
||||
set("log.stdout", false)
|
||||
|
||||
default = single("loveme.ogg")
|
||||
|
||||
openbsd = playlist(mode="random", "files/openbsd.pls")
|
||||
others = playlist(mode="random", "files/others.pls")
|
||||
jingles = playlist( "files/jingles.pls")
|
||||
@ -113,7 +114,6 @@ jingles = playlist( "files/jingles.pls")
|
||||
radio = fallback([ switch([({ 5h-11h }, openbsd),
|
||||
({ 11h-5h }, others)]),
|
||||
default])
|
||||
|
||||
radio = random(weights=[1,12],[ jingles, radio ])
|
||||
|
||||
output.icecast( %vorbis,
|
||||
@ -125,11 +125,9 @@ output.icecast( %vorbis,
|
||||
\end{verbatim}
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
||||
On se retrouve vite face à un problème classique :
|
||||
les différences de niveau sonore entre les divers morceaux.
|
||||
Et comme on veut avancer sur d'autres choses, on rache un
|
||||
@ -153,6 +151,13 @@ s = rotate([pl2014, pl2013, ..., jingles])
|
||||
output.icecast(..., s)
|
||||
\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}
|
||||
|
||||
@ -170,6 +175,28 @@ la suite les uns des autres ;)
|
||||
\section{Source clients}
|
||||
\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}
|
||||
@ -195,8 +222,26 @@ interface (e.g. sound card), encodes it and sends it to a streaming server.
|
||||
\subsection{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}
|
||||
|
||||
Mais c'est quoi ?\index{XXX}
|
||||
|
Loading…
Reference in New Issue
Block a user