You are currently browsing the category archive for the ‘server’ category.

Envie de partager vos excellents goûts musicaux et de faire un tour au tribunal? Faites de la radio et 3 mois de prison avec IceCast2 et MPD!

IceCast2

Icecast est le programme qui permettra de diffuser votre radio. Ce n’est pas un lecteur en lui même mais plutot un serveur. Première chose à faire: l’installer!

sudo apt-get install icecast2

Ensuite on détermine les mots de passe nécessaire a son administration en éditant le fichier suivant:

sudo nano /etc/icecast2/icecast.xml
<authentication>
        <!-- Sources log in with username 'source' -->
        <source -password>password1</source>
        <!-- Relays log in username 'relay' -->
        <relay -password>password2</relay>

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

source-password est le mot de passe qu’utilisera MPD pour se connecter à Icecast2
admin-password est le mot de passe de l’administrateur pour se connecter à l’interface web d’IceCast2
Nous n’utiliserons pas de « relay-password » mais il est préférable de le changer pour plus de sécurité.

Pour activer Icecast, éditez le fichier suivant:

sudo nano /etc/default/icecast2

et à la fin du fichier, changez « ENABLE=false » en « ENABLE=true ». Enfin lancez Icecast:

/etc/init.d/icecast2 start

Si tout va bien, vous devriez pouvoir accéder à l’interface Web via l’adresse suivante http://192.168.0.100:8000/ (en prenant soin de remplacer 192.168.0.100 par l’IP adéquate).

Rien a faire sur cette page, tout ce qu’il vous reste a faire est de configurer MPD.

MPD

MPD est le lecteur qui transmettra la musique à IceCast2 au format adéquat

Si vous ne savez pas comment installer MPD, suivez ce guide. Si vous avez déjà MPD d’installé et que vous voulez en lancer une seconde instance, suivez ce guide.

Dans tous les cas, éditez votre fichier de configuration (mpd.conf) et dans la section « ### AUDIO OUTPUT ### » commentez toutes les lignes et ajoutez celles-ci:

audio_output {
 type                    "shout"
 name                    "Le Nom De Votre Radio"
 host                    "localhost"
 port                    "8000"
 mount                   "/radio.ogg"
 password                "votre mot de passe"
#        quality                 "5.0"
 bitrate                 "98"
 format                  "44100:16:1"
}

type ne changez pas cela
name Le nom de votre radio
host l’IP de la machine ou se trouve IceCast2
port ne changez pas cela à moins d’avoir changé le port d’IceCast2
mount L’extension de l’adresse de votre radio. Dans l’exemple ci dessus (radio.ogg), l’adresse deviendra http://IP.IP.IP.IP:8000/radio.ogg
password le « source-password » défini dans /etc/icecast2/icecast.xml
quality et bitrate qualité et débit de l’encodage ogg-vorbis, choisissez-en un et commentez l’autre.
format le format en Hertz/Bit/Canaux

et surtout n’oubliez pas la dernière accolade « } ».

Une fois le tout terminez, lancez votre musique favorite et branchez vous sur votre radio (http://IP.IP.IP.IP:8000/radio.ogg) pour écouter votre travail pendant qu’il en est encore temps. VLC est parfait pour ce genre de job.

Notes

Partager de la musique sans soudoyer votre voisin c’est bien c’est mal, que ce soit de la musique libre ou soumise à des droits d’auteurs. Dans tous les cas on se fait baiser, il faut payer la SACEM un minimum de 60€ par mois.

« (…)même si l’oeuvre n’est plus protégée (domaine public), l’autorisation des titulaires de droits voisins (producteurs/artistes-interprètes) est également indispensable lorsqu’un disque (CD) est reproduit.

Ainsi l’enregistrement (au format MP3 ou tout autre format) pour mise à disposition sur les réseaux (Internet notamment), sans autorisation, constitue une contrefaçon aux termes du Code de la propriété intellectuelle, délit susceptible de poursuites pénales, et sur le plan civil, de dommages et intérêts. » SACEMal

Publicités

Realtime, pour quoi faire?

Si votre idée du multimédia est de regarder des films ou écouter de la musique tout en naviguant sur internet, vous n’aurez probablement pas besoin du support en temps réel.

Le temps réel est important pour les personnes qui ont besoin de la priorité maximale pour les applications audio et vidéo et où ces fonctions sont la principale utilité de la machine (sur les DAW ou Digital Audio Workstations par exemple). Le realtime est important aussi pour les utilisateurs utilisant des programmes qui nécessitent une faible latence sur leurs machine.

En général, si vous êtes satisfait avec vos applications multimédia telles qu’elles sont, vous n’avez certainement pas besoin du realtime et vous risquez d’altérer votre machine si vous essayer de l’y forcer.

Oui mais j’ai des messages d’erreur!!!

Si lorsque vous démarrez PulseAudio en mode verbose (-v), vous vous inquiétez des messages suivant, pas de panique. Pulse n’a pas besoin d’être dans le groupe-rt pour fonctionner correctement. Il ne s’agit pas d’erreurs mais de messages informatifs (et oui, c’est ca le mode verbose).

$pulseaudio -vD
(...)
high-priority scheduling was requested in the configuration. However, we lack the necessary priviliges:
I: main.c: We are not in group 'pulse-rt' and PolicyKit refuse to grant us priviliges. Dropping SUID again.

I need real fuckin’ time, dammit!!!

Ok ok, si vous voulez vraiment du realtime avec pulseaudio et si vous avez deux sous de bon sens, vous tournez déjà sur un kernel realtime. Si ce n’est pas le cas, cherchez un peu vous trouverez comment faire. Une fois installé, il n’y a plus qu’à vous ajouter au groupe pulse-rt avec ces petites commandes:

pulseaudio -k
sudo adduser $USER pulse-rt
pulseaudio -vD

pulseaudio -k: termine pulseaudio comme il se doit
sudo adduser $USER pulse-rt: ajoutes l’utilisateur courant au groupe pulse-rt, vous pouvez bien sur remplacez $USER par le nom d’utilisateur que vous voulez
pulseaudio -vD: démarre pulseaudio en mode verbose (-v) et en tant que démon (-D grr!)

Et voilà!

Si vous êtes l’heureux propriétaire d’un laptop, vous remarquerez la tripotée de câbles qui clouent votre portable au bureau. Ubuntu Server permet de se débarrasser de tout cela en créant un serveur d’impression, un serveur de fichiers et/ou un serveur web (LAMP) etc. mais malheureusement pas de serveur de son.

PulseAudio permet de transférer votre belle musique sur le réseau (local ou non) et de la jouer sur un autre PC en quelques clics. Malheureusement cela n’est pas (encore) intégré à Ubuntu Server et il faut donc bidouiller un peu la machine pour arriver à ses fins.

Ce tutoriel permet de configurer PulseAudio via la ligne de commande (SSH) et implique qu’il soit déja correctement installé sur le client et le serveur. Notez aussi que ce tutoriel n’a pas été testé sur d’autres machines que la mienne.

Coté serveur

Première chose: se logger sur le serveur (ssh utilisateur@IP) et installer Alsa ainsi que PulseAudio:

sudo apt-get install alsa-base pulseaudio pulseaudio-module-zeroconf

Tout se passe dans un seul fichier: /etc/pulse/default.pa (pour une config globale) ou ~/.pulse/default.pa (pour une config spécifique a un utilisateur). Tout d’abord faites une copie de sauvegarde, c’est un gros fichier, il vaut mieux etre prudent:

sudo cp /etc/pulse/default.pa /etc/pulse/default.pa_original

ou

cp ~/.pulse/default.pa ~/.pulse/default.pa_original

puis éditez l’un des fichiers:

sudo nano /etc/pulse/default.pa

ou

nano ~/.pulse/default.pa

Les passages en gras montrent les parties modifiées (commentées d’un « # » ou non) afin de se débarrasser des dépendances à X ou ESD qui ne sont pas installés sur un serveur:

(…)
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)

#load-module module-esound-protocol-tcp #inutile puisque esound n’est pas installé
#ici 192.168.1.0/16 correspond à toutes les adresses du réseau local (192.168.1.*)
#vous pouvez la modifier selon votre configuration:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/16
load-module module-zeroconf-publish

### Charge le module de réception du stream RTP
load-module module-rtp-recv #autorise l’acces du serveur par d’autres machine
(…)

#Commentez les lignes suivantes (dépendances à X)
(…)
#load-sample x11-bell /usr/share/sounds/gtk-events/activate.wav
(…)
#load-module module-x11-bell sample=x11-bell
(…)
#load-module module-x11-publish
(…)
#load-module module-gconf
(…)

Finalement, lancez PulseAudio en tapant « pulseaudio -Dv » dans la ligne de commande. L’option -D lance le démon et -v active le mode verbose afin de voir d’éventuelles erreurs. Notez que le message à propos de pulse-rt n’est pas une erreur, ce n’est qu’une notification. S’il n’y a pas d’autres erreurs c’est que vous avez réussi. Youpi!

Note Importante:

Par défaut le volume d’ALSA est à zéro, lancez la commande « alsamixer » dans un terminal et montez le son là où c’est nécessaire (généralement au niveau de Master, PCM et/ou Front).

Coté client

Cette partie assume que vous avez déja installé PulseAudio, si vous êtes sous Ubuntu Hardy c’est forcément le cas, sinon allez voir ici.

Ici tout est plus simple, on a un joli desktop, il n’y a qu’a cliquer où il faut. Mais d’abord il faut installer les outils graphiques:

sudo apt-get install paman paprefs pavucontrol padevchooser

Dans le Menu > Système > PulseAudio Preferences cochez la dernière case sous l’onglet « Network Access » et la deuxième case dans l’onglet Multicast/RTP puis fermez.

cliquez pour agrandir

Allez ensuite dans Menu > Applications > Son & Vidéo > PulseAudio Device Chooser. Une icône apparaît dans le tray. Cliquez dessus et dans Default Serveur, cliquez sur le nom du serveur qui apparaît en haut de la liste (voir notes plus bas).

Lancez votre musique favorite sans oublier de choisir PulseAudio comme serveur audio et voilà le travail: la musique est jouée sur le serveur! Pour renvoyer le son sur le portable, choisissez le serveur par défaut dans PulseAudio Device Chooser et redémarrez l’application.

Notes

Les utilisateurs de firestarter ayant des problèmes pour détecter le serveur, je conseille de purger et désinstaller firestarter (il s’agit vraisemblablement d’un bug avahi/firestarter).

Si vous préferez garder firestarter, allez voir ici pour le fix. Vous pouvez aussi spécifier le serveur a utiliser en choisissant « Autres » dans PulseAudio Device Chooser et en rentrant l’adresse du serveur en question.

Pour info, le protocole RTP/Multicast utilise le port 5353.

Renvoyer le son via le réseau est assez gourmand en bande passante: environ 50ko/s en download, 250ko/s en upload pour un fichier FLAC et vice-versa coté serveur.

Et si comme moi vous trouvez cette configuration soulante, allez donc plussoyer cette idée sur Ubuntu Brainstorm (cliquez sur l’image):



Jack Logo

Avez vous déjà eu envie d’envoyer la sortie audio d’un programme vers un autre? Ou alors de prendre cette sortie et de l’envoyer vers deux autres programmes et finalement enregistrer le résultat dans le programme d’origine? Si c’est le cas, JACK est ce que vous cherchez.

JACK est un serveur audio basse latence qui permet de connecter différentes applications sur un périphérique audio ainsi que de partager le son entre eux. Ses client peuvent tourner à part (comme des programmes normaux) ou au sein du serveur audio (comme des plugins).

JACK est destiné à l’utilisation professionnelle et est axé sur deux points: exécution synchrone de tous les clients et faible latence.

Installation

Si votre distribution n’intègre pas déjà JACK, il va falloir bien entendu l’installer. Pour en profiter pleinement, il vous faudra un noyau linux temps réel (optionnel mais recommandé).

sudo apt-get install jackd qjackctl
sudo apt-get install linux-image-rt linux-headers-rt

Note Importante:

Redémarrez en prenant soin de choisir Linux-x.x.xx-xx-rt comme noyau quand grub apparaît.

Configuration

tapez Alt+F2 et lancez qjackctl (ou fouillez les menu à la recherche de Jack Control)

Cliquez sur le bouton paramètres (Setup) à droite, et dans le dialogue qui s’affiche:

1. Sélectionnez votre carte son dans le menu déroulant
2. Activez le noyau temps réel
3. Activez le monitoring
4. Changez Frames/Period a un niveau inférieur pour obtenir la latence la plus faible possible. Certaines carte peuvent supporter un forte latence, d’autre pas. Cette valeur est a configurer selon vos besoins et votre matériel.

Dans l’onglet « divers » ou « Misc » cochez les cases suivante pour un peu plus de praticité:

Cliquez sur OK pour appliquer les paramètres et fermer le dialogue puis cliquez sur Start pour lancer le serveur.

Maintenant il va falloir chasser les XRuns…

Les XRUNSs apparaissent quand il y a trop ou pas assez de données dans le buffer.

Si vous avez des XRUNS, l’icône de JACK dans le tray et le « 0(0) » dans qjackctls vont virer au rouge, cela arrive quand vous ouvrez un programme ou quand vous ajoutez un plugin. Tant que ça n’arrive pas pendant la lecture, le processing ou l’enregistrement ce n’est pas trop grave.

Tout ce que vous avez à savoir c’est que les XRUNS saimal, saitrètrèmal. Vous pouvez réduire le nombre de XRUNS en augmentant la valeur de Frames/Periods dans les paramètres.

Utilisation

Maintenant que JACK tourne comme il faut, lancez un programme, choisissez-y JACK comme serveur (si cette option existe) et lancez un son. Pas de son!

C’est normal, il faut relier votre programme à ALSA, à nouveau dans qjackctl, cliquez sur « Connect » et reliez la sortie du programme à une entrée ALSA. Miracle!

Maintenant vous pouvez connecter plein de programmes les uns aux autres sans problème. Mais attentions aux XRUNS!

HELP !

Pour tout problème de son, conseils, ou simplement pour causer musique et apprécier l'ambiance, vous êtes les bienvenus au salon musique

Archives