Streaming audio de votre relais sur internet

Pour diffuser sur internet votre relais radio svxlink, nous vous expliquons ce qu'il convient d'installer sur votre Raspberry Pi

sudo apt-get install icecast2

Vous pouvez modifier certain paramètre de fonctionnement comme le nom d'utilisateur admin et mot de passe.

sudo nano /etc/icecast2/icecast.xml

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>hackme</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>hackme</relay-password>
 
        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>hackme</admin-password>
    </authentication>

Installation

sudo apt-get install darkice

Configuration de DarkIce

A présent, la configuration de darkice est à réaliser en modifiant notamment les paramètres:

  • input / device = plug_Loopback_1_2
  • password = hackme (doit correspondre au mot de passe de Icecast)
  • url = adresse ip de votre Raspberry Pi

sudo nano /etc/darkice.cfg

# 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      = 5          # size of internal slip buffer, in seconds
reconnect       = yes       # reconnect to the server(s) if disconnected
realtime        = yes       # run the encoder with POSIX realtime priority
rtprio          = 3         # scheduling priority for the realtime threads
 
# this section describes the audio input that will be streamed
[input]
device          = plug_Loopback_1_2  # 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         = 1         # 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     = abr       # average bit rate
format          = vorbis    # format of the stream: ogg vorbis
bitrate         = 96        # bitrate of the stream sent to the server
server          = localhost
                            # host name of the server
port            = 8000      # port of the IceCast2 server, usually 8000
password        = hackme    # source password to the IceCast2 server
mountPoint      = svxcard96  # mount point of this stream on the IceCast2 server
name            = SvxLink Card repeater (http://svxcard.f5uii.net)
                            # name of the stream
description     = You are listening a amateur radio repeater
                            # description of the stream
url             = http://192.168.1.9
                            # URL related to the stream
genre           = my own    # genre of the stream
public          = yes       # advertise this stream?
localDumpFile   = dump.ogg  # local dump file

Ajouter le module de loopback audio snd-aloop

sudo nano /etc/modules
ajouter à la liste de modules
snd-aloop
CTRL X puis O pour quitter et enregistrer

Editer l'existant ou un nouveau fichier /etc/asound.conf

sudo nano /etc/asound.conf

Ajouter le contenu suivant

/etc/asound.conf

pcm_slave.hw_Loopback_1_2 {
pcm "hw:Loopback,1,2"
format S16_LE
channels 2
rate 48000
}
pcm.plug_Loopback_1_2 {
type plug
slave hw_Loopback_1_2
ttable {
0.0 = 1
0.1 = 1
}
}
CTRL X puis O pour quitter et enregistrer

Editer svxlink.conf

sudo nano /etc/svxlink/svxlink.conf

svxlink.conf

Dans la section [RepeaterLogic]
Modifier TX=Tx1 par TX=MultiTx
[RepeaterLogic]
TYPE=Repeater
RX=Rx1
TX=MultiTx

Créer 2 nouvelles sections

svxlink.conf

[MultiTx]
TYPE=Multi
TRANSMITTERS=Tx1,TxStream
#Create new section 
 
[TxStream]
TYPE=Local
AUDIO_DEV=alsa:hw:Loopback,0,2
AUDIO_CHANNEL=0
PTT_TYPE=NONE
TIMEOUT=7200
TX_DELAY=0
PREEMPHASIS=0

CTRL X puis O pour quitter et enregistrer

et ensuite rebooter

sudo reboot

Après redémarrage, depuis votre réseau local, vous allez accéder au streaming par l'adresse ip depuis votre navigateur. http://192.168.1.9:8000/'  Icecast

Vous pouvez écouter le flux audio grâce à VLC également en ouvrant l'adresse http://192.168.1.9:8000/svxcard96.xspf  VLC streaming

Pour pouvoir écouter le relais au dela de son réseau local, nous allons diffuser le flux audio via une des plateformes de diffusion gratuite de streaming audio (webradio). Etant gratuites, elles sont souvent limités en fonctions proposées. La plateforme Caster.fm propose actuellement la diffusion gratuite de sa webradio jusqu'à 400 écouteurs simultanés.

Paramétrage de caster.fm

Après vous être inscrit sur la plateforme Caster.fm, vous allez disposer des informations suivantes:

  • L'adresse du serveur caster (shaincast.caster.fm),
  • Le port (23514 dans notre cas),
  • Le fichier audio “à lire” (/listen.mp3 dans notre cas),
  • L'utilisateur (source dans notre cas),
  • Le mot de passe.

 Caster.fm

Ces paramètres sont à reporter dans le fichier de configuration du logiciel DarkIce. Nous y avons spécifier l'encodage mp3, à priori seul encodage que peut recevoir Caster.fm. Nous ajoutons le facteur de qualité (de compression) du flux mp3. Nos essais montre que le bitrate peut être abaissé (24) sans déteriorer la qualité audio. Nous ne diffusons pas de la musique, uniquement de la voix. La variable url peut contenir par exemple l'adresse de votre page de diffusion caster.fm. Elle est indiqué sur l'onglet Website et Your Website Address Is.

# 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      = 5          # size of internal slip buffer, in seconds
reconnect       = yes       # reconnect to the server(s) if disconnected
realtime        = yes       # run the encoder with POSIX realtime priority
rtprio          = 3         # scheduling priority for the realtime threads
 
# this section describes the audio input that will be streamed
[input]
device          = plug_Loopback_1_2  # OSS DSP soundcard device for the audio i$
sampleRate      = 44100     # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample   = 16        # bits per sample. try 16
channel         = 1         # 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     = cbr       # average bit rate = abr
format          = mp3    # format of the stream: ogg vorbis
bitrate         = 24        # bitrate of the stream sent to the server
quality = 0.8
server          = shaincast.caster.fm
                            # host name of the server
port            = 23514      # port of the IceCast2 server, usually 8000
password        = your-password-of-course    # source password to the IceCast2 server
mountPoint      = listen.mp3  # mount point of this stream on the IceCast2 serv$
name            = SvxLink Card repeater (http://svxcard.f5uii.net)
                            # name of the stream
description     = You are listening an amateur radio repeater
                            # description of the stream
url             = http://svxcard.f5uii.net/
                            # URL related to the stream
genre           = hamradio    # genre of the stream
public          = yes       # advertise this stream?
localDumpFile   = dump.ogg  # local dump file

Ecouter votre relais radio en ligne

Lancer le logiciel DarkIce par la commande sudo darkice. Consulter votre page de diffusion http://yourprefix.Caster.fm/ (par exemple). Le statut de diffusion y est présenté.

Vous aurez alors la possibilité d'intégrer sur votre site internet, un code permettant d'intégrer un lecteur flash, permettant à vos visiteurs d'écouter votre relais radioamateur, en ligne.

Le code est donnée par caster.fm.  Player Caster.fm Une petite astuce pour vous affranchir du popup de publicité qui est affiché durant 30 secondes au chargement du lecteur audio.

<style>
div#qadserve_800x440_lightbox { visibility:hidden }
</style>

Démarrage automatique du streaming

Pour que votre streaming débute automatiquement au démarrage du Raspberry Pi, nous allons le faire lancer automatiquement par la fonction crontab.

sudo crontab -e
et d'ajouter en fin de fichier la dernière ligne suivante
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
 
@reboot sudo darkice -c /etc/darkice.cfg &

Supprimer IceCast

A présent,pour la diffusion sur internet, et si vous n'utilisez plus de diffusion sur réseau local, IceCast peut être désinstallé.

sudo apt-get remove icecast2
sudo apt-get purge icecast2