====== 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