Catégories
Bogue

Le son Dolby Digital, quelque chose de plutôt instable sous Linux

Mon HTPC m’en aura décidément fait voir de toutes les couleurs. C’est avec le son S/PDIF que j’ai eu le plus de trouble, probablement parce que la prise en charge de ce dernier n’est pas aussi bien testée que le son analogique couramment utilisé. J’ai encore une fois cru que la mort de mon système était arrivée.

Tout a commencé quand j’ai mis à jour de Ubuntu 12.04 vers 14.04. Déjà cela a posé des difficultés, car le gestionnaire de mises à jour ne proposait pas Ubuntu 14.04. Il m’aurait fallu, selon ce dernier, installer 12.10, 13.04, 13.10 puis enfin 14.04! Ces mises à jour successives promettaient de prendre un temps interminable. Ce serait probablement moins long de tout formater, installer 14.04 à partir de rien et puis passer un après-midi à copier/coller des identifiants de disques pour reconstruire les points de montage, reconfigurer des logiciels et déboguer. Cela ne me plaisait pas du tout.

Par chance, j’ai trouvé un moyen de faire la mise à jour en ligne de commande. Mais ce n’était pas nécessaire. Selon cette procédure, démarrer update-manger avec l’option -d aurait pu suffire. Malgré tout, la mise à jour se passa bien et ne nécessita pas plus d’intervention manuelle que d’habitude. Ce fut juste affreusement long; cette machine aurait grandement besoin d’un SSD, mais mon plan d’action pour lui en installer un serait long et tortueux. Je voudrais en effet remplacer la configuration à double SSD du Drake par un seul disque plus gros (au moins 256Go), pour la simplifier, puis mettre l’un des SSD de 120Go dans mon HTPC. L’autre SSD, je ne sais pas encore ce que je ferais avec.

Malheureusement, la machine souffrit de plusieurs problèmes après l’opération. D’abord, elle était devenue plus lente. Je me rendis compte par la suite que chaque opération prenait plusieurs secondes, un peu comme sous Windows XP après trois ou quatre ans.  La machine semblait manquer de mémoire, mais je ne pouvais pas la monter à plus de 4Go à cause de la maudite carte mère. Il allait falloir, pour aller au-delà de 4Go, changer la carte mère, le processeur et tant qu’à faire le boîtier pour aller vers un format MicroATX plus petit; ça n’en finirait JAMAIS!

Ensuite, la lecture de fichiers MKV sous XBMC posait des problèmes avec le son: les voix étaient devenues pratiquement inaudibles. La première fois que c’est arrivé, avec Monde Infernal, j’ai cru que c’était le film qui était enregistré ainsi; les gens suivaient avec les sous-titres. Mais un deuxième film, Insomnie, souffrit des mêmes symptômes. Je ne pouvais pas croire qu’il y avait de plus en plus de films qu’il fallait suivre avec les sous-titres. Si c’est ainsi, je devrai, pensai-je, cesser d’écouter la télévision: une autre limite de plus à cause de ma déficience visuelle, cette fois purement artificielle, parce qu’aucun réalisateur n’est obligé de monter des films ainsi! À noter que c’étaient des films achetés sous forme de DVD et traités par MakeMKV, donc pas la peine de supposer que c’était à cause d’une source douteuse de matériel piraté puisque ce n’était pas le cas!

Cela fonctionnait très bien avec les fichiers AVI et les fichiers MKV fonctionnaient sous VLC. Alors il y avait un problème avec XBMC. La première étape me semblait d’obtenir la version la plus récente, 13.1, de XBMC. Pour cela, samedi passé, je suis allé sur le site de XBMC pour découvrir que je devais taper ceci sur le terminal:

sudo apt-get install python-software-properties pkg-config
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get install xbmc

Malheureusement, la commande add-apt-repository ne fonctionnait pas, m’indiquant après plusieurs secondes que le dépôt PPA était absent et de vérifier le nom du dépôt. J’ai vérifié plusieurs fois en vain.

J’ai longtemps cherché pour une solution ou une alternative à XBMC: en vain. Il semblait bel et bien falloir convertir tous ces fichiers MKV en AVI, mais qui me dit que dans quelques mois, si je réussissais à mettre XBMC à jour, je n’aurais pas à migrer toute ma base de données vers un autre format, comme OGM, WebM ou MP4? Ça n’en finirait jamais!

C’est hier (19 juin) que j’ai trouvé quelque chose: modifier les fichiers de configuration de APT manuellement pour réactiver la source de paquets XBMC qui a été retirée pendant la mise à jour. J’ai vérifié que APT allait tenter d’obtenir XBMC depuis un dépôt pour Ubuntu 14.04. Puis j’ai tenté une mise à jour avec sudo apt-get update et sudo apt-get dist-upgrade. Tout a bien fonctionné! En temps normal, cette modification manuelle ne devrait pas être nécessaire. Un ami et quelques personnes sur le forum d’Ubuntu ont pu avec succès ajouter le dépôt de XBMC si bien que c’est sans doute un problème local à ma configuration qui n’aurait de solution que la réinstallation complète, à moins de trouver plus tard, par hasard, une solution.

XBMC mis à jour, les problèmes ne s’arrêtèrent pas là. En effet, hier soir, quand j’ai voulu me reprendre pour écouter Insomnie, eh bien j’avais le son, avec les voix, mais plus le 5.1. XBMC s’obstinait à décoder le flux AC-3 5.1 en stéréo et renvoyait ça par S/PDIF à mon ampli. Encore une fois, j’ai dû chercher, chercher, chercher, pendant presque trois heures! Ça a été très frustrant et j’ai bien cru qu’il n’y aurait rien à faire cette fois, pour arranger ça.

XBMC passe à présent par PulseAudio pour produire du son, mais PulseAudio a encore quelques difficultés avec le passage des données AC-3 directement vers la sortie S/PDIF ou, encore pire, HDMI. Dans mon cas, c’était du S/PDIF au moins, mais même avec ça… D’abord, j’ai trouvé cette page qui indiquait d’utiliser Pavucontrol pour activer le passage du AC-3 et du DTS au niveau de PulseAudio. Un redémarrage de XBMC plus tard, je n’avais toujours pas le son 5.1.

Mais pourquoi, nom de Dieu, cela fonctionnait-il parfaitement sous MPlayer et VLC? Eh bien ces deux-là étaient configurés pour envoyer le son directement vers ALSA. J’y avais veillé voilà des mois! Alors peut-on envoyer depuis XBMC directement via ALSA? Oui, ai-je découvert, mais il faut encore passer une foutue option en ligne de commande. Ainsi, comme avec Emacs, je ne pourrais plus démarrer XBMC directement depuis le Bureau; il allait falloir passer par le terminal à chaque fois. Je m’attendais à ce que ce bogue persiste pour plusieurs versions de Ubuntu, donc plusieurs mois, voire un an, alors cela ne me plaisait pas du tout.

Je fis un test avec Totem qui, je sais, utilise PulseAudio. Lui aussi me sortait du son stéréo plutôt que passer le AC-3 directement. J’ai revu plusieurs fois les paramètres sous Pavucontrol. J’ai essayé de configurer XBMC en 2 canaux plutôt que 5.1. Je me suis assuré que sous Totem, la sortie directe AC-3 était activée. RIEN, non absolument RIEN, n’y changeait quoi que ce soit.

Pour me faire fulminer encore davantage, eh bien une réponse à mon post sur le forum d’Ubuntu me suggérait que Linux n’est peut-être pas le meilleur choix pour moi! J’ai bien failli répondre avec un message de désespoir profond qui aurait donné de très mauvaises idées sur moi, mais je me suis ravisé et adouci le ton. Qu’y a-t-il comme alternatives si cette boîte à merde ne convient pas? Tout jeter et acheter un Mac? Tout formater et essayer avec Windows? Juste obtenir le Mac ou la licence de Windows vont me prendre une semaine après quoi je devrai me taper des problèmes de pilotes, de mises à jour qui n’en finiront plus, des caractères minuscules accentués par l’écran 1080p (une TV 4K, pensai-je, on va oublier ça!), beaucoup de transfert de fichiers, et peut-être rien de mieux au bout. En plus je devrai, dans le cas du Mac, avoir deux ou trois disques durs externes qui vont traîner sur mon meuble de cinéma-maison; ça va être laid et je vais inévitablement finir par en faire tomber un par terre. Ça n’a pas de bon sens! Et que dire de la sortie audio du Mac? Faudra que mon père ou quelqu’un d’autre bidouille un fil pour que le minijack puisse envoyer du S/PDIF à l’entrée coax de mon ampli ou que je change mon ampli pour un modèle avec entrée HDMI étant donné que bien entendu, le Mac n’a aucune sortie S/PDIF optique ou coaxiale!

Oui le lecteur blu-ray va régler le problème pour les films, si je cherche à plus finir pour en avoir un avec sortie HDMI mais aussi S/PDIF (puisque mon satané ampli de malheur n’a pas d’entrée HDMI!), mais que vais-je faire pour la musique? Changer ma TV pour un modèle « intelligent » capable de fouiller sur mon réseau pour aller piger des fichiers musicaux sur mon ordinateur dans le bureau? Et si je n’ai pas le goût de payer 1500$ pour une nouvelle TV tandis que l’actuelle me contente très bien, et en plus faire venir chez moi plein de gens qui voudront acheter la vieille TV mise sur Kijiji et la négocier 200$ plus bas, voire davantage?

À bout de nerfs, j’ai fini par faire le test en forçant XBMC à utiliser ALSA directement. Eh bien dès que j’ai démarré le film, de l’affreuse distorsion a commencé à sortir de mes haut-parleurs. Mais ça fonctionne sous VLC et MPlayer!!!! Pas avec XBMC. Il allait ENCORE falloir configurer PulseAudio en mode stéréo analogique de sorte que je n’aurais plus la possibilité d’utiliser YouTube, GrooveShark ou toute autre application Flash. Ça a été bien utile, GrooveShark, pour mettre de la musique la dernière fois que j’ai invité mon frère et ma sœur à souper. Je ne veux pas reperdre cette fonctionnalité! En plus il se pouvait que la configuration de PulseAudio ne suffise pas; j’allais peut-être devoir désinstaller PulseAudio, de sorte que je ne pourrais même plus faire fonctionner YouTube ou GrooveShark en configurant temporairement le son. PulseAudio est aussi une pierre angulaire d’Ubuntu. Le désinstaller va probablement supprimer beaucoup d’autres logiciels et probablement le méta-paquet ubuntu-desktop, ce qui va gêner toute mise à jour future. Vais-je me souvenir, dans deux ans, que je dois réinstaller ubuntu-desktop avant de migrer vers Ubuntu 16.04? Pas sûr! Que va-t-il se passer si j’omets cette étape? Je m’attends à une catastrophe apocalyptique, à l’échelle de la machine ça va de soit bien entendu! C’était vraiment décourageant, ce retour en arrière.

J’ai songé à la possibilité d’utiliser la liaison S/PDIF pour la musique et une connexion analogique pour l’audio 5.1 dans le cas des films. Malheureusement, je ne suis même pas certain de pouvoir retrouver les trois câbles minijack vers RCA que j’avais achetés pour ça. L’un d’eux est maintenant à l’avant de l’ampli pour permettre de brancher facilement un source audio comme un laptop ou un lecteur MP3. J’aurais bien aimé l’avoir, ce fil-là, quand mon frère a voulu me faire entendre quelques extraits de musique, mais il avait été temporairement réquisitionné pour mon setup de musique. Il en reste peut-être un deuxième derrière le meuble, branché pour qu’un signal analogique de secours se rende de l’ordinateur au système de sons. Le troisième, je ne sais pas où il est! En plus, comme XBMC sert à la fois pour les films et la musique et passe par PulseAudio, je serais obligé de reconfigurer PulseAudio avec Pavucontrol à chaque fois que je voudrais passer entre films et musique. La configuration est pénible, car Pavucontrol ne fonctionne pas très bien avec juste le clavier et les caractères sont encore et toujours un peu trop petits, décidément une véritable gangrène depuis les écrans LCD!!!

Certaines recherches m’ont mené à l’existence d’une bibliothèque A52 qui semble nécessaire pour effectuer le passage AC-3. J’ai alors tenté un sudo apt-cache search a52 et suis tombé sur le paquet libasound2-plugins-extra. Oh, pensai-je, j’avais lu quelque chose au sujet d’instructions pour compiler un plug-in A52 pour ALSA qui était susceptible d’aider PulseAudio pour le AC-3, mais ça semblait pour une vieille version d’Ubuntu. Peut-être le plug-in se trouvait-il dans ce paquet? Je l’ai installé après quoi j’ai redémarré Totem: en vain.

J’ai tenté de revérifier, encore, les paramètres dans Pavucontrol. Eh oui, le AC-3 est toujours coché. Alors pourquoi? Avant de rendre les armes et commencer à planifier plus en détails une solution alternative parce que là j’étais vraiment tanné de me battre avec cette machine qui pose des difficultés depuis son achat en 2009, j’ai tenté un dernier coup avec XBMC. Il y a eu une distorsion de la mort, puis ensuite, comme par miracle, XBMC est retombé sur ses pattes et a commencé à envoyer des données AC-3 à mon ampli! J’ai éteint XBMC et réessayé: ok. Ce matin, j’ai fait un redémarrage complet du système et XBMC fonctionnait toujours avec le AC-3!

Pour les problèmes de performance, j’ai découvert deux coupables: le serveur de Minecraft que je veux garder encore un peu, et Unity+Compiz. J’ai remplacé Unity par LXDE et j’ai eu une bien meilleure performance. J’ai eu quelques difficultés avec la taille des caractères et les touches de raccourci, mais ça semble pas trop mal maintenant.