Sommaire
- Le contexte
- Technologies de diffusion audio bluetooth
- Installation de pipewire et bluez
- L'impasse
- Moralité
- Pour aller plus loin
'lut les gens,
Le contexte
J’envoie régulièrement l’audio de mon ordinateur portable Thinkpad vers ma barre de son en bluetooth. Alors que celle-ci dispose de toutes les fonctionnalités audio surround, dolby, DTX, 5.1, et j'en passe, ça me désole d’envoyer simplement en stéréo alors que je pourrais faire mieux puisque je dispose de tout le kit d'enceintes permettant une diffusion multicanal audio.
Technologies de diffusion audio bluetooth
J'ai commencé alors quelques recherches pour pouvoir diffuser de l'audio multicanal. Au fil de mes recherches je découvre qu’il existe principalement 2 technologies de diffusion audio bluetooth:
- L'A2DP (Advanced Audio Distribution Profile) est celle qu’on retrouve sur tous les périphériques bluetooth actuels. Elle permet une sortie audio stéréo (qu’on retrouve sous le terme sink). Elle utilise en natif le codec audio SBC qui fournit une qualité audio juste acceptable. Aussi d’autres codecs ont fait leur apparition, SBC XQ qui est une version améliorée de SBC, mais également LDAC, Aptx, AAC ou LC3. Cette technologie est associée à AVRCP (Audio Video Remote Control Profile) qui permet de gérer les commandes.
- LE Audio associé au Bluetooth Low Energy (BLE) est un mode basse consommation qui utilise le codec LC3 qui à terme devrait équiper tous les périphériques bluetooth. Ce mode permettra la diffusion vers plusieurs périphériques bluetooth et de pouvoir utiliser la diffusion multicanal 5.1 contrairement aux autres codecs précédemment cités qui sont limités au mono et au stéréo.
Or en connectant ma barre de son « Abri de jardin » (je sais, c’est bizarre…) avec blueman, je me rends compte que je n’ai accès qu’au codec standard SBC et à sa version améliorée SBC XQ. Pas moyen d’avoir un codec plus qualitatif.
Installation de pipewire et bluez
Ni une, ni deux, je me lance dans l’installation du serveur audio pipewire car pulseaudio installé de base sur ma Mageia 9 ne gère que l’A2DP et ne gère pas le LE Audio.
Je bascule sous pipewire fourni sur mon système avec l’outil pa-switcher et je constate aucune évolution avec blueman et j’ai toujours les mêmes codecs, je choisis d’installer la dernière version de pipewire à partir des sources après avoir installé via les sources les codecs LC3 et Aptx.
Et là je me retrouve avec une installation hybride entre une installation système et local bluez et pipewire avec un mix de fichiers et les services systemd des versions locales qui ont écrasé les versions système. Au reboot du PC, c’est bien par défaut les binaires locaux qui sont lancés, et dans les logs j'ai bien :
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/ldac
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/aptx_hd
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_hd
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/aptx
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/aac
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aac
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/opus_g
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/opus_g
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/sbc
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/sbc
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_ll_1
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_ll_0
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/faststream
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/faststream_duplex
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/opus_05
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/opus_05
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/opus_05_duplex
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/opus_05_duplex
C’est tout bon en ce qui concerne les nouveaux codecs, même si je ne vois pas clairement apparaitre LC3. Et là je constate avec désappointement que blueman ne m’offre pas mieux, je recompile donc cette fois-ci bluez qui fournit le daemon bluetoothd.
Au bout de toutes ces pérégrinations je connecte ma barre de son avec blueman et je constate avec dépit que j’en suis au même stade avec SBC et SBC XQ comme codecs. En dernier ressort, je compile blueman, mais ça ne change rien à l’affaire.
L'impasse
Je me tourne vers les spécifications de ma barre de son LG SL10YG et ce n’est qu’à ce moment là que je comprends que les modes multicanaux ne marchent que via l’interface HDMI et qu’elle se repose sur Bluetooth 4.2 qui ne prend pas en charge le LE Audio (qui arrive avec la version 5.2). J’aurais dû commencer par là !!
D’ailleurs la commande bluetoothctl info me renvoie :
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
j’aurais du avoir quelque chose comme :
UUUUID: Published Audio Capabilities (00001850-0000-1000-8000-00805f9b34fb)
Fin du sketch qui m’aura pris quelques heures, pour positiver je suis passé à pipewire et j'ai découvert son fonctionnement.
Moralité
La morale de cette histoire, s'il doit y en avoir une, est qu'à l'achat de votre barre de son vérifiez bien si elle est au moins compatible bluetooth 5.2 pour pouvoir envoyer de l'audio multicanal, dès lors que la musique correspondante soit au format qui va bien (mais ça c'est une autre histoire).
Pour aller plus loin
- une page de présentation de tous les codecs audio (en français) https://www.frandroid.com/comment-faire/comment-fonctionne-la-technologie/752329_aptx-ldac-sbc-tout-comprendre-aux-codecs-bluetooth-audio
- une autre page (en français) https://www.audiophonics.fr/fr/blog-diy-audio/45-les-differents-codecs-bluetooth-acc-sbc-aptx-ldac.html
- une autre page (en français) https://www.clubic.com/audio-hifi/article-878271-1-comprendre-codecs-bluetooth.html
- support LE Audio dans pipewire (en anglais) https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/LE-Audio-+-LC3-support
- le codec SBC et SBC XQ (en français) https://fr.wikipedia.org/wiki/Low_Complexity_Subband_Codec
- le codec LDAC (en anglais) https://en.wikipedia.org/wiki/LDAC_(codec)
- le codec Aptx (en anglais) https://en.wikipedia.org/wiki/AptX
- le codec LC3 (en anglais) https://en.wikipedia.org/wiki/LC3_(codec)
- cette même page mais en plus détaillée sur mon blog https://olivier.hoarau.site/?p=6608
# Complément d'infos
Posté par mrintrepide . Évalué à 4 (+3/-0).
Bien vérifier "LE Audio", parce que je ne suis pas sur que c'est obligatoire pour BT 5.2+
"SBC XQ" c'est juste sur SBC en dual channel (SBC c'est joint stereo) avec plus de bitrate. Ça utilise le bande passante supplémentaire du mode EDR, c'est plus du hack qu'un truc officiel.
https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/spa/plugins/bluez5/README-SBC-XQ.md
http://soundexpert.org/articles/-/blogs/audio-quality-of-sbc-xq-bluetooth-audio-codec
[^] # Re: Complément d'infos
Posté par Funix (site web personnel, Mastodon) . Évalué à 4 (+2/-0).
Bluetooth 5.2 est une norme, s'il n'y a pas le LE Audio alors que le périphérique est donné pour être 5.2 c'est qu'il ne respecte pas la norme et c'est mensonger ! J'ose espérer que les constructeurs ne se permettent pas cette fantaisie.
https://www.funix.org mettez un manchot dans votre PC
[^] # Re: Complément d'infos
Posté par Enzo Bricolo 🛠⚙🛠 . Évalué à 5 (+3/-0).
Ils n'oseraient pas
# cavernicula
Posté par Psychofox (Mastodon) . Évalué à 2 (+0/-1).
Je dois vivre dans une caverne car j'ai du faire une recherche pour savoir ce qu'était une barre de son.
[^] # Re: cavernicula
Posté par Funix (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
il faut croire :-)
j'ai laissé tomber les énormes enceintes qui étaient la norme pendant longtemps, une barre de son prend bien moins de place et le son est de bien meilleure qualité.
https://www.funix.org mettez un manchot dans votre PC
[^] # Re: cavernicula
Posté par Psychofox (Mastodon) . Évalué à 5 (+3/-1).
Qu'entends tu par de meilleure qualité ? Pour les films mon pc est directement branché sur ma hifi stéréo (j'utilise un vidéoprojecteur, pas une télé). Le son me parait très bon, la musique en tout cas vu que j'utilise même amplis et enceintes pour la musique.
Par contre j'ai remarqué que sur les productions de ces 10 dernières années le volume des dialogues est toujours beaucoup trop bas, les acteurs parfois ne font que susurrer alors que les scènes d'actions ou la musique est beaucoup plus forte. Ça oblige parfois à mettre les sous-titre si on ne veut pas se casser les oreilles.
Du coup ma question est la suivante. Est-ce que c'est parce que ces productions récentes sont optimisées pour du multicanal et qu'avec un équipement supportant le dolby 5.1 le problème serait résolu? Où est-ce juste une mode et les producteurs estiment que tu dois t'exploser les oreilles comme au ciné et puis c'est tout.
[^] # Re: cavernicula
Posté par Meku (site web personnel) . Évalué à 3 (+1/-0).
Je ne suis pas spécialiste en hifi, mais en effet, avec les enceintes de base d'une TV, sur les films, les dialogues sont difficilement audibles et facilement couverts par la musique.
Avec une barre de son, ou un bon casque audio, le son est beaucoup plus clair, y compris à très bas volume. Sur des produits milieu/haut de gamme, tu as même des options de filtrage qui te permettent d'accentuer la musique ou les voix (sur ma barre de son Yamaha j'ai une option « clear voice » par exemple).
[^] # Re: cavernicula
Posté par devnewton 🍺 (site web personnel) . Évalué à 9 (+7/-1).
C'est parce qu'ils ont honte de jouer dans des flims aussi mauvais.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: cavernicula
Posté par JM BBB . Évalué à 1 (+1/-0).
Sortir le son des films sur une chaîne stéréo, ça va pour la musique, mais pas pour les dialogues.
Il faut à minima une troisième enceinte centrale. C'est pour ça qu'il y a des amplis spécifiques avec plus de sorties que droite et gauche.
M'en bati sieu nissart
[^] # Re: cavernicula
Posté par Psychofox (Mastodon) . Évalué à 8 (+6/-1).
Question: pourquoi?
En général dans le conteneur video tu as un flux audio stereo et un multicanal, pourquoi le mix pour la stereo devrait être mauvais maintenant si on savait bien le faire avant?
[^] # Re: cavernicula
Posté par JM BBB . Évalué à 1 (+1/-0).
Quand le son est codé en 5.1 ou du genre, c'est logique puisque la voie centrale fait partie des canaux, donc s'il n'y a pas l'enceinte centrale on entend très peu les voix.
Si le son est juste codé en stéréo, je ne saurais pas dire pourquoi.
M'en bati sieu nissart
[^] # Re: cavernicula
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 5 (+3/-0). Dernière modification le 23 décembre 2024 à 15:55.
Quand le son es encodé en 5.1, si on veut le lire en stéréo, il faut mixer correctement les 6 canaux en 2, et non pas ignorer 4 canaux et n'utiliser que les deux autres.
Dans ffmpeg par exemple ça se passe par ici: https://roundup.ffmpeg.org/doxygen/1.0/audio__mix__matrix_8c.html
Un lecteur média implémenté correctement devrait savoir faire ça.
[^] # Re: cavernicula
Posté par Psychofox (Mastodon) . Évalué à 3 (+1/-1).
Si ma mémoire est correcte il me semble que quand on lit un DVD ou un blueray, il y a un flux pour chacun. Pour les services de streaming:
Sur un ordinateur, Netflix et Max par exemple n'annoncent ne supporter que le 5.1 sous windows 10/11 et le navigateur edge ou l'appli netflix. Je crois qu'Amazon Prime ne le supporte pas du tout de son côté. Donc du coup c'est eux qui font le mixing mauvais si leur source est du 5.1 et que je n'utilises pas une smart TV, un appareil android/apple, ou un stick type Roku/FireTV.
[^] # Re: cavernicula
Posté par Funix (site web personnel, Mastodon) . Évalué à 3 (+1/-0).
Tout d'abord je n'ai pas particulièrement l'oreille fine d'autant que j'ai de l'acouphène et pourtant c'est le jour et la nuit entre une bonne vieille chaîne HIFI et ses gros parleurs et une barre de son avec enceintes périphériques. C'est difficile à décrire, le son est bien plus enveloppant, plus subtile, ça donne vraiment l'impression d'être "dedans", c'est un vrai plus en mode cinéma.
La barre de son a en plus un son adaptatif en fonction du volume de la pièce et je peux également régler une à une le volume des enceintes.
https://www.funix.org mettez un manchot dans votre PC
[^] # Re: cavernicula
Posté par Simon . Évalué à 1 (+1/-0).
J'ai l'équipement "complet" ampli home-cinéma + enceintes 5.1, pas de miracle pour les contenus à grande plage dynamique : c'est en effet le mixage cinéma qui est voulu comme ça.
En revanche, de nombreux appareils de lecture (mon ampli et ma TV le proposent par exemple) disposent d'un "mode nuit" ("Dynamic volume" chez Denon) qui va appliquer une compression dynamique et amoindrir les différences entre les passages forts et les passages faibles, et "moyenniser" le volume, donc plus besoin de sauter sur la zapette entre chaque scène.
Il doit être possible d'appliquer ça à un lecteur de vidéos sur PC, mais je ne sais pas comment.
[^] # Re: cavernicula
Posté par Psychofox (Mastodon) . Évalué à 4 (+1/-0).
J'ai étudié la question depuis la discussion précédente. VLC a l'option de compression dynamique et pour tout le reste (y compris du streaming) on peut utiliser les filtres pipewire de easyeffects:
https://github.com/wwmm/easyeffects
Ça mériterait peut-être que j'écrive un journal, voire une dépêche.
[^] # Re: cavernicula
Posté par Christophe B. (site web personnel) . Évalué à 3 (+1/-0).
Laisse tomber … les barres de son sont des périphériques inventés par les constructeurs de télécommandes.
Et certaines personnes me disent que l'informatique c'est compliqué !
[^] # Re: cavernicula
Posté par Benoît Sibaud (site web personnel) . Évalué à 4 (+1/-0).
Les mêmes ont inventé les barres de rire aussi ?
# Sans perte
Posté par pepie34 . Évalué à 4 (+3/-0).
Avant même parler de multicanal, il y a quasiment aucun périphérique qui supporte les codecs sans perte en bluetooth.
Rien n’est connecté par bluetooth chez moi.
Sinon tu as pensé à un nano ordi (genre rpi) sur hdmi de la barre avec pulseaudio et/ou sharesync puis liaison wifi?
Perso j’utilise moodeaudio sur des rpi pour faire du multiroom mpd ou la pomme.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.