Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/01/2013, à 20:51

classdroogies

[Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

Salut,

Il existe plusieurs façons de diffuser un flux audio pour faire de la Webradio sous Gnu/Linux. Le but de ce tutoriel est d'installer un serveur Icecast2 utilisé avec le client Darkice, couplé a PulseAudio, afin de pouvoir streamer tout les sons envoyés à la carte.

Darkice est compatible Alsa et OSS mais seul les sons envoyés sur les entrées mic/line sont streamés. il est également compatible Jack qui comme PulseAudio offre la possibilité d'envoyer tout ce qui sort.

Cette installation a été réalisée sur Ubuntu 12.04 LTS Lubuntu Minimal sans PulseAudio installé....

ETAPE 1 : INSTALLATION DE PULSEAUDIO

Note : Passer cette étape si vous êtes sur un environnement complet Ubuntu - Kubuntu - Xubuntu - Lubuntu.....

sudo apt-get install pulseaudio pavucontrol

Redémarrer le pc.

ETAPE 2 : INSTALLATION D'ICECAST2

sudo apt-get install icecast2

Configuration :

Nous allons ici configurer l'identifiant et mot de passe d'administration du serveur, ainsi que les mots de passe d'accès du flux source et relais. Vous pouvez, si vous le souhaitez, passer cette étape et configurer le serveur en éditant le fichier :

sudo nano /etc/icecast2/icecast.xml

Il faudra alors relancer votre serveur afin que les modifications soient prises en compte :

sudo service icecast2 restart

Note : Pour relancer le programme de configuration (qui se charge au passage de redémarrer le service) :

sudo dpkg-reconfigure icecast2

Afin de pouvoir accéder depuis internet à votre radio il vous faut une adresse IP Fixe ou un nom de domaine si vous hebergez votre serveur chez-vous (voir ici pour plus d'information), il faut également ouvrir le port utilisé par icecast (par défaut 8000) au niveau de votre parefeu, et faire de même avec redirection, sur votre box.

Ici nous allons rester sur le réseau local :

1357323543.png

Configurez ensuite les différents mots de passe d'accès du flux et d'administration.

Icecast2 est prêt a être utilisé et accessible via votre navigateur internet à l'adresse :

http://localhost:8000

Nous allons maintenant installer notre client Icecast2 afin d'envoyer un flux audio à notre serveur.

ETAPE 3 : INSTALLATION DARKICE

Note : Darkice dispose d'une interface graphique pour 'faciliter' sa configuration : Darksnow. Ayant rencontré quelques soucis d'utilisation, je n'en parlerai pas dans la suite....

sudo apt-get install darkice

Configuration :

Nous allons paramétrer notre client afin d'envoyer tous les sons sortants de la carte en ogg/vorbis. Pour cela Darkice a besoin d'un fichier de configuration qui, par défaut, se trouve dans /etc/darkice.cfg.

sudo nano /etc/darkice.cfg

Voici le fichier de configuration commenté :

[general]			# CONFIGURATION GENERALE DE DARKICE
duration=0                      # Durée du stream en seconde, mettre 0 pour un stream en continu
bufferSecs=1                    # Durée du buffer en seconde
reconnect=yes                   # Reconnexion automatique en cas de déconnexion
                                
[input]                         # CONFIGURATION DU DISPOSITIF D'ENTREE ET D'ECHANTILLONAGE
device=default                  # Choix du dispositif audio pour envoyer tout ce qui sort de la carte son
sampleRate=44100                # Fréquence d’échantillonnage du flux
bitsPerSample=16                # Nombre de bits
channel=2                       # Nombre de canaux
                                
[icecast2-0]                    # CONFIGURATION DE L'ENCODAGE ET DE L'ENVOI DU FLUX
bitrateMode=vbr                 # Mode d'encodage ici variable
quality=1.0                     # Réglage de la qualité de 0.0 à 1.0
format=vorbis                   # Choix du format du flux ici ogg
server=localhost                # Adresse du server Icecast2
port=8000                       # Port du server Icecast2
password=hackme                 # Mot de passe pour la source Icecast2
mountPoint=mawebradio.ogg       # Point de montage du flux Icecast
name=mawebradio                 # A partir d'ici ces paramètres sont optionnels → Nom de votre radio
description=Une super radio...  # La description de votre radio
url=http://mawebradio.fr        # Un site utile
genre=hardcore                  # Le style de votre radio

Pour plus d'information sur l'usage et la configuration de Darkice :

man darkice
man darkice.cfg

Vous trouverez également un fichier de configuration d'exemple commenté :

/usr/share/doc/darkice/examples/darkice.cfg

Il ne nous reste plus qu'à lancer Darkice :

sudo darkice

Normalement vous devriez voir ceci :

DarkIce 1.0 live audio streamer, http://code.google.com/p/darkice/
Copyright (c) 2000-2007, Tyrell Hungary, http://tyrell.hu/
Copyright (c) 2008-2010, Akos Maroy and Rafael Diniz
This is free software, and you are welcome to redistribute it
under the terms of The GNU General Public License version 3 or
any later version.
Using config file: /etc/darkice.cfg
Using ALSA DSP input device: default
Using POSIX real-time scheduling, priority 98

Dans votre contrôleur de volume (Pavucontrol) sélectionner :

Monitor of Audio interne Stéréo analogique

1357323965.png

Il ne vous reste plus qu'à envoyer du son sur votre machine de diffusion et à vous connecter depuis un autre pc à l'interface web de votre serveur Icecast :

http://<adresse_du_serveur>:8000

Note : vous pouvez obtenir l'adresse ip locale de votre serveur à l'aide de la commande :

ifconfig

1357334305.png

et directement au flux audio :

http://<adresse_du_serveur>:8000/mawebradio.ogg

wink

Dernière modification par classdroogies (Le 26/01/2016, à 20:13)

Hors ligne

#2 Le 24/01/2016, à 18:53

benlafix

Re : [Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

Bonjour j'ai bien suivi ton tuto. je veux faire une web radio live dans la cuisine de notre collectif
la config que je veux faire est la suivante

darkice sur un pc portable ubuntu avec table de mix micro et platines.
ip 192.168.3.21

qui envoy le tout sur un raspberry pi avec icecast 2 installé et operationel derriere une freebox
ip : 192.168.3.51
hostname : mawebradio
port : 8000
serveur actif et visible sur l'adresse http://192.168.3.51:8000/

par contre j'ai une erreure sur la config de darkice

quelle difference y a t'il entre :
serveur
mountpoint

doije renplir uniquement
[gener[al]
[icecast2]

ou aussi les autres section
[shoutcast]
lorsque je demarre darkice j'ai l'erreure
DarkIce.cpp:150: no section [general] in config [0]

cordialement

Dernière modification par benlafix (Le 24/01/2016, à 18:54)

Hors ligne

#3 Le 24/01/2016, à 20:40

classdroogies

Re : [Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

Salut,

Le serveur Icecast c'est l'application qui diffuse les données, le mountpoint c'est les données.
Comme tu utilises Icecast et pas Shoutcast il n'est pas nécessaire de configurer cette section.

Poste le contenu de ton fichier de configuration.

Hors ligne

#4 Le 24/01/2016, à 22:33

benlafix

Re : [Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

bonsoir merci de ta reponse

voila donc mon fic de conf darkice sur ubuntu


# sample DarkIce configuration file, edit for your needs before using
# see the darkice.cfg man page for details

# this section describes general aspects of the live streaming session
[general]
duration        = 0        # duration of encoding, in seconds. 0 means forever
bufferSecs      = 30         # size of internal slip buffer, in seconds
reconnect       = yes       # reconnect to the server(s) if disconnected

# this section describes the audio input that will be streamed
[input]
device          = /dev/dsp  # OSS DSP soundcard device for the audio input
sampleRate      = 44100     # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample   = 16        # bits per sample. try 16
channel         = 2         # channels. 1 = mono, 2 = stereo

# this section describes a streaming connection to an IceCast2 server
# there may be up to 8 of these sections, named [icecast2-0] ... [icecast2-7]
# these can be mixed with [icecast-x] and [shoutcast-x] sections
[icecast2-0]
bitrateMode     = vbr       # average bit rate
format          = vorbis    # format of the stream: ogg vorbis
bitrate         = 96        # bitrate of the stream sent to the server
server          = webradio # host name of the server
port            = 8000      # port of the IceCast2 server, usually 8000
password        = source_password   # source password to the IceCast2 server
mountPoint      = live.nsv  # mount point of this stream on the IceCast2 server
name            = Kitchen_Morozoff_Radio
                            # name of the stream
description     = Kitchen and mix
                            # description of the stream
url             = [url]http://192.168.3.51[/url]
                            # URL related to the stream
genre           = good vibes    # genre of the stream
public          = yes       # advertise this stream?
localDumpFile	= dump.ogg  # local dump file

et mon fic de conf sur le server icecast raspberry pi 192.168.3.51

<icecast>
    <limits>
        <clients>10</clients>
        <sources>2</sources>
        <threadpool>5</threadpool>
        <queue-size>524288</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
        <!-- If enabled, this will provide a burst of data when a client 
             first connects, thereby significantly reducing the startup 
             time for listeners that do substantial buffering. However,
             it also significantly increases latency between the source
             client and listening client.  For low-latency setups, you
             might want to disable this. -->
        <burst-on-connect>1</burst-on-connect>
        <!-- same as burst-on-connect, but this allows for being more
             specific on how much to burst. Most people won't need to
             change from the default 64k. Applies to all mountpoints  -->
        <burst-size>65535</burst-size>
    </limits>

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>source_webradio</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>relay_webradio</relay-password>

        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>admin_webradio</admin-password>
    </authentication>
......

<hostname>webradio</hostname>

    <!-- You may have multiple <listener> elements -->
    <listen-socket>
        <port>8000</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->
        <!-- <shoutcast-mount>/stream</shoutcast-mount> -->
    </listen-socket>
......

 <fileserve>1</fileserve>

    <paths>
                <!-- basedir is only used if chroot is enabled -->
        <basedir>/usr/share/icecast2</basedir>

        <!-- Note that if <chroot> is turned on below, these paths must both
             be relative to the new root, not the original root -->
        <logdir>/var/log/icecast2</logdir>
        <webroot>/usr/share/icecast2/web</webroot>
        <adminroot>/usr/share/icecast2/admin</adminroot>
        <!-- <pidfile>/usr/share/icecast2/icecast.pid</pidfile> -->

        <!-- Aliases: treat requests for 'source' path as being for 'dest' path
             May be made specific to a port or bound address using the "port"
             and "bind-address" attributes.
          -->
        <!--
        <alias source="/foo" dest="/bar"/>
          -->
        <!-- Aliases: can also be used for simple redirections as well,
             this example will redirect all requests for http://server:port/ to
             the status page
          -->
        <alias source="/" dest="/status.xsl"/>
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
        <!-- <playlistlog>playlist.log</playlistlog> -->
        <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
        <logsize>10000</logsize> <!-- Max size of a logfile -->
......
</logging>

    <security>
        <chroot>0</chroot>
        <!--
        <changeowner>
            <user>nobody</user>
            <group>nogroup</group>
        </changeowner>
        -->
    </security>
</icecast>

je n'ai mis que les parties modifiée

cordialement


Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 26/01/2016, à 20:45)

Hors ligne

#5 Le 24/01/2016, à 22:34

benlafix

Re : [Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

ce qui me donne

ouille@ouille-e6410-ls:~$ sudo darkice
DarkIce 1.0 live audio streamer, [url]http://code.google.com/p/darkice/[/url]
Copyright (c) 2000-2007, Tyrell Hungary, [url]http://tyrell.hu/[/url]
Copyright (c) 2008-2010, Akos Maroy and Rafael Diniz
This is free software, and you are welcome to redistribute it 
under the terms of The GNU General Public License version 3 or
any later version.

Using config file: /etc/darkice.cfg
DarkIce: DarkIce.cpp:150: no section [general] in config [0]

Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 26/01/2016, à 20:46)

Hors ligne

#6 Le 24/01/2016, à 22:38

benlafix

Re : [Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

et dans contrôle de volume pulseaudio
dans enregistrement
aucune application n'enregistre actuellement le son

Dernière modification par benlafix (Le 24/01/2016, à 22:38)

Hors ligne

#7 Le 26/01/2016, à 20:12

classdroogies

Re : [Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

Salut,

Une petite remarque pour commencer, utilise les balises code ( < > ) quand tu copie/colle tes conf, c'est plus lisible wink

Il y a des erreurs dans ta configuration de darkice, j'ai corrigé en prenant la config donnée dans le tuto et adapté pour ton installation, remplace le contenu du fichier /etc/darkice.cfg par ça :

[general]			# CONFIGURATION GENERALE DE DARKICE
duration=0                      # Durée du stream en seconde, mettre 0 pour un stream en continu
bufferSecs=1                    # Durée du buffer en seconde
reconnect=yes                   # Reconnexion automatique en cas de déconnexion
                                
[input]                         # CONFIGURATION DU DISPOSITIF D'ENTREE ET D'ECHANTILLONAGE
device=default                  # Choix du dispositif audio pour envoyer tout ce qui sort de la carte son
sampleRate=44100                # Fréquence d’échantillonnage du flux
bitsPerSample=16                # Nombre de bits
channel=2                       # Nombre de canaux
                                
[icecast2-0]                    # CONFIGURATION DE L'ENCODAGE ET DE L'ENVOI DU FLUX
bitrateMode=vbr                 # Mode d'encodage ici variable
quality=1.0                     # Réglage de la qualité de 0.0 à 1.0
format=vorbis                   # Choix du format du flux ici ogg
server=192.168.3.51             # Adresse du server Icecast2
port=8000                       # Port du server Icecast2
password=source_password       # Mot de passe pour la source Icecast2
mountPoint=kmr.ogg               # Point de montage du flux Icecast
name=Kitchen_Morozoff_Radio      # A partir d'ici les paramètres sont optionnels → Nom de votre radio
description=Kitchen and mix      # La description de votre radio
url=http://Kitchen_Morozoff_Radio.fr        # Un site utile
genre=good vibes               # Le style de votre radio

Normalement ça devrait fonctionner.

Dernière modification par classdroogies (Le 26/01/2016, à 20:32)

Hors ligne

#8 Le 28/01/2016, à 10:02

benlafix

Re : [Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

tout d'abord merci de ta réponse

je viens de tout changer et j'ai l même réponse
"ouille@ouille-e6410-ls:~$ sudo darkice
DarkIce 1.0 live audio streamer, http://code.google.com/p/darkice/
Copyright (c) 2000-2007, Tyrell Hungary, http://tyrell.hu/
Copyright (c) 2008-2010, Akos Maroy and Rafael Diniz
This is free software, and you are welcome to redistribute it
under the terms of The GNU General Public License version 3 or
any later version.

Using config file: /etc/darkice.cfg
DarkIce: DarkIce.cpp:150: no section [general] in config [0]
"

sinon pourquoi rajouter qualité et enlever bitrate?
pourquoi kmg.org
et doi je nelever public et localdumpfile

merci

Hors ligne

#9 Le 29/01/2016, à 19:26

classdroogies

Re : [Tuto] Webradio : Streaming son pc avec Icecast2+Darkice+PulseAudio

Salut,

benlafix a écrit :

sinon pourquoi rajouter qualité et enlever bitrate?

L'option "quality" permet d'indiquer la valeur moyenne du bitrate dans le cas d'un mode d'encodage variable, l'option bitrate n'étant pas prise en compte dans ce mode, donc pas besoin de préciser.

benlafix a écrit :

pourquoi kmg.org

Pour le kmr.ogg et non pas .org, j'ai mis ça car cela correspond au initiale de ta radio --> Kitchen_Morozoff_Radio, tu mets ce que tu veux, l'important c'est de mettre une extension valable qui corresponde à l'encodage, ici .ogg.

benlafix a écrit :

et doi je nelever public et localdumpfile

localdumpfile --> c'est pour enregistrer le flux dans un fichier.
public --> l'option pour faire apparaitre ou non ton flux sur la page d'accueil d'Icecast.

Pour plus d'info sur les options de configuration, n'hésite pas à lire la documentation.

Si tu as bien copié/collé la conf, que je t'ai donnée, dans ton fichier /etc/darkice.cfg, je ne vois pas d'où ça peut venir, ça marche nickel pour moi, sur Ubuntu 12.05, je n'ai pas testé sur des versions plus récente.

Dernière modification par classdroogies (Le 29/01/2016, à 19:27)

Hors ligne