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
Installation et configuration de Icecast
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 et configuration de Darkice
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 Loopback
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
Configuration des voies audio du Raspberry Pi
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
Configurer SVXLink pour le streaming
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
Accéder au streaming audio
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/
'
Vous pouvez écouter le flux audio grâce à VLC également en ouvrant l'adresse http://192.168.1.9:8000/svxcard96.xspf
Publier sur une plateforme de 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.
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. 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