Dominique Meeùs
Dernière modification le  
retour au sommaire Linux

Multimédia

Capture de flux

Le paquet mimms donne un utilitaire en ligne de commande très simple pour capturer les flux (stream) mms. La commande mimms mms://serveur/chemin/chanson.mp3 capture le flux et l’enregistre, par défaut, dans le fichier chanson.mp3 sur le disque. (Si on ne précise pas la cible, c’est simplement le même nom que sur le serveur.)

Quand on regarde une vidéo en streaming, par exemple sur YouTube, le fichier s’enregistre dans le répertoire /tmp sous un nom cabalistique et il y reste quand le film est fini jusqu’à ce qu’on lance une autre vidéo ou qu’on quitte la page. Si avant sa disparition on le copie pour le mettre ailleurs, on a une copie du film sans avoir eu besoin du moindre logiciel de capture. (On peut donner au fichier un nom plus parlant.)

Vidéo

Totem est une interface utilisateur pour l’un ou l’autre des programmes gstreamer et xine. Ubuntu a choisi gstreamer qui est le plus prometteur, le plus dans le vent. (Au début, il était surtout prometteur, comme d’autres logiciels sous Linux peuvent l’être. Maintenant, en plus, il fonctionne assez bien.

Le problème est de pouvoir rendre des formats non-libres, ce qu’Ubuntu ne propose pas par défaut. Avant de vous affoler et d’installer VLC, Mplayer et que sais-je encore, sachez qu’il y a des solutions dans Totem.

Gstreamer

Je suis pour s’en tenir à gstreamer et à l’installation de paquets debian par synaptic ou apt. S’assurer que tous les plugins sont installés (voir dans Synaptic tout ce qui est relatif à gstreamer).

Dans le temps, il fallait disposer du plugin gstreamer-pitfdll qui permet d’exécuter du code dll. Il fallait en plus installer le paquet w32codecs à partir de dépôts un peu marginaux, comme ceux du Penguin Liberation Front, en ajoutant une des déclarations suivantes (pour Ubuntu 5.10) :
deb http://packages.freecontrib.org/ubuntu/plf/ breezy free non-free
deb ftp://ftp.free.fr/pub/Distributions_Linux/plf/ubuntu/plf/ breezy free non-free
Rien de tout cela ne semble encore nécessaire.

Xine

Certains préfèrent xine. (C’est la solution que j’ai utilisée avant de trouver les plugins pour gstreamer.) On ne peut pas avoir les deux. Remplacez le paquet totem-gstreamer par totem-xine. (Attention, il faut quand même assez de codecs : dans Totem Édition, Préférences, Général : Ajouter des greffons supplémentaires. Décomprimez-y le fichier
http://www4.mplayerhq.hu/MPlayer/releases/codecs/all-20050216.tar.bz2. Bon, d’accord, la date 20050216 peut changer tous les jours. Voyez all=all codecs for Linux x86 (Win32 .dll and Linux .so) sur la page
http://www4.mplayerhq.hu/homepage/design7/codecs.html
.)

Son

Volume, sourdine, session

Il m’est arrivé après certaines mises à jour que le volume se remette à zéro et en sourdine à chaque démarrage. Il semble que ce soit la faute de Pulseaudio. Trouvé sur un forum la recommandation de fermer toutes les applications, d’effacer tout le dossier ~/.pulse et de redémarrer. On peut trouver ça brutal, mais ça ne semble pas faire de dégât et ça donne le résultat voulu de conserver le niveau de volume d’une session à l’autre.

Carte son

On peut voir des renseignements sur sa carte son par cat /proc/asound/cards. Explorer /proc/asound avec ls et cat.

Les cartes son ont des tas de dispositifs différents peu documentés et les résultats sont assez imprévisibles. Il vaut mieux utiliser alsamixer dans un terminal. Avec une application GUI, on n’est pas sûr que tout soit affiché (voir ci-dessous pour le Contrôleur de volume de Gnome et l’enregistrement). D’ailleurs, alsamixer est déjà semi-graphique. Avant de paniquer, d’installer toutes sortes de paquets supplémentaires et de toucher à tous les fichiers de configuration, il faut vérifier que les différents dispositifs qui doivent l’être sont activés et qu’il y a un volume raisonnable ; par exemple, pour avoir du son il ne suffit pas qu’il y ait du volume général, il faut aussi du volume PCM.

Dans Ubuntu 8.10, alsamixer affiche la « carte » PulseAudio par défaut, où il faut règler un volume suffisant en lecture et en enregistrement. Pour avoir la première carte matérielle, il faut faire alsamixer -c 0.

Dans alsamixer, on se déplace avec Tab entre Playback, Capture, All. On passe d’un dispositif à l’autre avec les flèches latérales, on change les réglages avec les flèches haut et bas ou par de plus grands incréments par Page Up, Page Down, on active ou désactive un dispositif de lecture (Playback) avec la touche M (mute), on met un dispositif d’enregistrement (Capture) en mode capture ou non avec la barre d’espacement. On quitte avec Esc.

Enregistrement

Avec ma carte son actuelle HDA Intel intégrée sur la carte mère chipset Realtek ALC662, rev1, l’enregistrement est impossible si on active avec alsamixer -c 0 dans Channel, l’option 6ch au lieu de 2ch. C’est dans les options de lecture (Playback), mais ça influe sur l’enregistrement ! Pour écouter, Front est indispensable. Front Micpeut être mute, ainsi que Surround, Center et LFE. Je suppose que Line vise l’entrée d’une source extérieure et CD l’écoute d’un CD par un petit câble direct entre lecteur de CD et carte son, ce qui n’est pas le cas chez moi où on entend les CD avec CD mute.

Avec mon ancienne carte son (nForce2 de NVidia, chipset Realtek ALC655), pour parler au micro, il fallait que Micro et Capture soient activés en mode capture, pas Mix. (Le volume du micro n’intervient que sur le retour dans mon casque, pas sur l’enregistrement ni pour mes interlocuteurs en VOIP.) Dans Édition, Préférences du Contrôleur de volume (gnome-volume-control) pour Alsa mixer, il faut afficher non seulement Micro mais aussi Enregistrement. (Préférer la commande alsamixer, voir ci-dessus). J’ai perdu du temps à chipoter avec Skype alors qu’Enregistrement était simplement désactivé. Afficher aussi LFE qui devrait être désactivé (dit-on, je ne sais plus qui, où ni pourquoi).

Skype, OSS, ALSA et PulseAudio

Sous Ubuntu 8.10, le dispositif par defaut est PulseAudio. Dans Skype 2.0.0.72, dans les option du son, Default device ne donne rien. (Je remarque que le bouton Faire un essai sonore teste le choix du champ Sonnerie.) Avec le choix pulse pour les champs Son sortant et Sonnerie, on a du son. Le Default device dans le champ Son entrant a pour effet qu’un appel de test avorte avec le message Problème avec le périphérique de capture audio. Avec pulse, la communication n’est pas refusée mais ça ne marche pas et le rendu de l’enregistremnt est de durée nulle (les deux bibs se succèdent immédiatement). Chez moi, ça ne marche qu’avec HDA Intel (hw:Intel,0) comme son entrant, et pulse convient en sortie. C’est probablement ce choix en sortie qui permet de téléphoner même si on écoute un CD. (Je veux dire que c’est techniquement possible. Il y a bien sûr intérêt à mettre le CD en pause pour suivre la conversation.)

À partir de 1.3.x, Skype supporte ALSA et le passage par aoss n’est plus nécessaire.

Pour le son, Skype s’adressait à l’ancien OSS, l’entrée et la sortie du son se faisant par /dev/dsp. Il arrivait que Skype refuse d’appeler (sans explications claires), peut-être parce que le système son était ou paraissait occupé. Le paquet alsa-oss fournit la commande aoss qui permet de lancer un programme en le redirigeant vers ALSA. Si je fais aoss skype, Skype démarre et accepte de faire des appels, seulement je n’ai pas de son ! Il faut encore éditer (ou même créer) un fichier /etc/asound.conf ou ~/.asoundrc. J’ai écrit mon ~/.asoundrc selon les recommandations de Lorenzo Colitti. Cela étant fait, la commande ALSA_OSS_PCM_DEVICE="skype" aoss skype --disable-dbus donne un Skype qui n’est plus à la merci d’un système son occupé.

Un lanceur Gnome n’accepte pas cette phrase. J’ai donc écrit un script
#!/bin/bash
ALSA_OSS_PCM_DEVICE="skype" aoss skype --disable-dbus
#

et c’est ce script que je lançais avec le lanceur, au lieu de /usr/bin/skype.

Skype ne permet pas de rappeler après avoir raccroché

Avec les premières versions de Skype, on pouvait avoir le problème suivant :

Vous faites un appel Skype. À la fin, l’autre raccroche. Parfois Skype le détecte et l’appel est terminé. Vous pouvez alors faire un autre appel. Parfois non, ou bien vous voulez prendre l’initiative, et vous raccochez avec le bouton rouge. Skype vous chante alors le /usr/share/skype/sound/hangup.wav et omet de libérer le dispositif de son. Si vous voulez faire un nouvel appel, le son est occupé et Skype vous dit qu’il est impossible d’appeler. Il faut alors quitter Skype (pas seulement fermer la fenêtre) et le relancer. Autre solution (référence http://juljas.net/linux/skype/ entre autres) : renommer le fichier hangup.wav pour le rendre inaccessible à Skype.

Multiplexing

Certaines cartes font du multiplexing (peuvent jouer plusieurs sons en même temps) et d’autres pas. Avec la commande cat /proc/asound/pcm, j’obtiens ceci :

$ cat /proc/asound/pcm
00-00: Intel ICH : NVidia nForce2 : playback 1 : capture 1
00-01: Intel ICH - MIC ADC : NVidia nForce2 - MIC ADC : capture 1
00-02: Intel ICH - IEC958 : NVidia nForce2 - IEC958 : playback 1

playback 1 veut dire que ma carte ne peut jouer qu’un air à la fois. Des cartes plus sophistiquées pourraient répondre 32, par exemple.

Cela étant, ALSA peut faire du multiplexing logiciel et envoyer le mélange à la carte son. Dans mon installation d’Ubuntu 6.06 (Dapper), ça marche d’office. La preuve ? J’ai baptisé test35sec.wav un jingle de 35 secondes. J’ouvre deux terminaux et je lance dans les deux avec quelques secondes de décalage la commande aplay test35sec.wav. J’entends ma chanson deux fois en même temps en superposition. Sans ce service d’ALSA, la réponse à la deuxième commande devrait être que quelque chose est busy.

Ekiga et multiplexing

Dans la configuration d’Ekiga, si on laisse Nvidia Nforce2 comme périphériques d’entrée et de sortie, on obtient comme avec Skype le message que c’est occupé. Mais Ekiga qui supporte ALSA propose aussi default, une instance logicielle de pcm offerte par ALSA. Avec default, ça marche.

Interopérabilité SIP : Ekiga avec le service de Wengo

Le Wengophone 2 est maintenant disponible dans le dépôt Universe d’Ubuntu et ça fonctionne. (Ce qui suit est obsolète.) J’ai pu dépenser mes 10 € et j’en ai remis plusieurs fois depuis. (Wengo est parfois moins cher que Skype. J’utilise Skype surtout dans mon forfait vers les lignes fixes nationales.)

J’ai installé WengoPhone (0.99) et, plein d’illusions, j’ai payé 10 € au service de téléphonie de Wengo avant de m’apercevoir que le WengoPhone ne fonctionne pas. (Il se plaint d’être mal configuré et se plante avant que l’on puisse essayer quoi que ce soit pour y remédier.) Mais puisque SIP est un standard, ne puis-je pas téléphoner avec le logiciel Ekiga sur mon copmpte chez Wengo ?

J’ai réussi à récupérer mes codes d’utilisateur du service Wengo et à les inscrire dans Ekiga. Je démarre donc Ekiga avec deux comptes enregistrés : ekiga.net et voip.wengo.fr. Je peux faire un test d’écho (réussi) avec sip:500@ekiga.net, mais aussi tout aussi bien avec sip:333@voip.wengo.fr. Si j’appelle mon téléphone comme sip:0032473abcdef@ voip.wengo.fr, l’appel aboutit bien sur le téléphone, que je peux décrocher, mais il n’y a pas de communication. Ekiga (Wengo ?) continue à sonner. Cependant, quand je raccroche le téléphone, Ekiga affiche que le correpondant a raccroché. Je ne sais pas quand je pourrai utiliser mes 10 € ! Patience.

Configuration d’ALSA

Un jour (ancienne version d’Ubuntu ou même de Debian) je n’avais pas de son. En cherchant à repérer tous les fichiers d’aide, j’ai trouvé un readme sur alsa mentionnant l’utilitaire alsaconf. J’ai pris le risque de lancer alsaconf. J’ai eu des écrans lisibles et d’autres pas. J’ai répondu OK à tout et j’ai eu du son.

Il y a aussi un problème de permissions. Il y a un groupe du son (audio). Root en faisait partie mais pas, par défaut, les autres utilisateurs. Pour qu’ils puissent bénéficier d’ALSA, il faut qu’ils soient faits membres du groupe. Avec des installations récentes d’Ubuntu, tous les utilisateurs ont du son.

Retour en haut de la page