====== 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
hackme
hackme
admin
hackme
===== 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
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
Dans la section [RepeaterLogic]
Modifier TX=Tx1 par TX=MultiTx
[RepeaterLogic]
TYPE=Repeater
RX=Rx1
TX=MultiTx
Créer 2 nouvelles sections
[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/'''
{{ :documents:icecast.png?direct | Icecast}}
Vous pouvez écouter le flux audio grâce à VLC également en ouvrant l'adresse ''http://192.168.1.9:8000/svxcard96.xspf''
{{ :documents:vlc_streaming_svxcard.png?direct | VLC streaming}}
===== 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 [[http://caster.fm|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 [[http://caster.fm|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.
{{ :documents:caster.fm.param.png?direct | 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é.
{{:documents:caster.fm.live.png|}}
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.
{{ :documents:caster.fm.player.png | Player Caster.fm }}
Une petite astuce pour vous affranchir du popup de publicité qui est affiché durant 30 secondes au chargement du lecteur audio.
==== 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