web-dev-qa-db-fra.com

Comment faire fonctionner un équipement Bluetooth compatible avec aptX avec Ubuntu?

J'ai un casque capable d'aptX et je veux l'utiliser pour jouer de la musique avec la meilleure qualité audio que le casque peut techniquement fournir dans Ubuntu. Comment puis je faire ça?

While A2DP prend en charge de nombreux codecs en option et est extensible pour prendre en charge d’autres codecs définis par le fabricant. AptX ne se contente pas seulement de fournir une qualité audio supérieure à celle de la concurrence, mais préconise également de réduire les délais de synchronisation audio lors de la lecture de vidéos.

Voici mes questions:

  • Comment puis-je faire en sorte que les équipements Bluetooth compatibles aptX utilisent ce codec dans Ubuntu?
    • Quelles solutions sont disponibles?
  • Comment puis-je vérifier et vérifier une connexion établie pour le codec utilisé?

J'aimerais souligner que, même si cela peut ressembler à un message sponsorisé, ce n'est pas le cas. À mon avis, FLAC et Opus devraient être la norme absolue, mais à ma connaissance, les appareils prenant en charge ces codecs ne sont pas disponibles pour le moment.

23
LiveWireBT

Modifier 2018-10-27: Les prises en charge de PulseAudio par LDAC, APTX (-HD) et AAC sont en cours. Il y a un référentiel sur GitHub de EHfive avec des correctifs ainsi qu'un PPA pour la version 18.04 et ultérieure, consultez le wiki pour plus d'informations. Il semble que les correctifs arriveront en amont à un moment donné. J'ai vérifié le PPA le 18.04, cela fonctionne, bien qu'il remplace PA 11.1 par 12, installe une version plus récente de ffmpeg et x265.

Edit 2017-12-18: Je dois l'avoir manqué il y a quelques semaines, mais il semble y avoir un encodeur maintenant dans FFmpeg . À ma connaissance, aucune solution conviviale n’existe pour le moment.

La réponse courte

Vous devez utiliser des dongles Bluetooth de marque spéciale. Jetez un coup d’œil à la section Comment puis-je utiliser aptX alors? de cette réponse ou parcourir le site aptx.com pendant émetteurs .


La réponse la plus longue

Problèmes de licence

Le codec aptX est un standard propriétaire, qui CSR a été acquis de APT Licensing Ltd. dans le but de développer et de commercialiser des solutions audio Bluetooth haute fidélité optimisées via aptX via ingrédient image de marque . Vous avez raison, il s'agit d'une stratégie pour la RSE de vendre des puces exclusives.

J'ai trouvé la clause suivante en parcourant le contrat de licence du décodeur :

  • mettre en œuvre le logiciel sous forme de micrologiciel dans un code sécurisé intégré au produit du preneur de licence

Bien que cela ne réponde pas aux questions sur le codeur, je dirais que la situation est au moins aussi difficile qu'avec d'autres codecs et composants logiciels propriétaires ( 1 , 2 , - ).

Comment puis-je utiliser aptX alors?

Vous pouvez l'utiliser, mais pas comme une solution logicielle libre.

Vous pouvez trouver des clés électroniques Bluetooth de marque spéciale, appelées transmetteurs aptX. Ce ne sont pas les dongles Bluetooth typiques de taille nano ou pico, mais des périphériques USB Audio Class. (Pour plus d'informations, reportez-vous à la section Périphériques de périphériques de l'article USB dans Wikipedia.) Cela signifie que ces périphériques seront reconnus comme des cartes son et ne fourniront pas de connectivité Bluetooth à l'ordinateur hôte. Il y a également un inconvénient majeur: ils coûtent presque 10 fois plus cher que les dongles Bluetooth ordinaires.

Liste des transmetteurs aptX ou dongles Bluetooth avec prise en charge d'aptX dans l'ordre alphabétique:

  • Transmetteur Bluetooth Bluetooth Creative BT-D1, Bluetooth 2.1 + EDR
  • Creative BT-W1/BT-W2 USB, Bluetooth 2.1 + EDR
  • Sennheiser BTD 500 USB, Bluetooth 3.0
  • Avantree BTDG-50-WGR, Bluetooth 4.1 avec aptX LL

(Les suppléments sont les bienvenus! J'aimerais voir des alternatives, de préférence moins chères.)

Vérifiez le codec configuré d'une connexion

Installez bluez-hcidump et exécutez Sudo hcidump avdtp, puis connectez le périphérique et recherchez la négociation de configuration. Ce qui suit est le résultat que j'ai obtenu (voir aussi ), on dirait qu'il a essayé aptX, AAC et finalement réglé pour SBC.

$ Sudo hcidump avdtp
HCI sniffer - Bluetooth packet analyzer ver 5.35
device: hci0 snap_len: 1500 filter: 0x400
< AVDTP(s): Discover cmd: transaction 11 nsp 0x00
> AVDTP(s): Discover rsp: transaction 11 nsp 0x00
    ACP SEID 5 - Audio Sink
    ACP SEID 3 - Audio Sink
    ACP SEID 1 - Audio Sink
< AVDTP(s): Capabilities cmd: transaction 12 nsp 0x00
    ACP SEID 5
> AVDTP(s): Capabilities rsp: transaction 12 nsp 0x00
    Media Transport
    Media Codec - non-A2DP (aptX)
      16kHz 32kHz 44.1kHz 48kHz 
      Stereo 
< AVDTP(s): Capabilities cmd: transaction 13 nsp 0x00
    ACP SEID 3
> AVDTP(s): Capabilities rsp: transaction 13 nsp 0x00
    Media Transport
    Media Codec - MPEG-2,4 AAC
      MPEG-2 AAC LC MPEG-4 AAC LC 
      8kHz 11.025kHz 12kHz 16kHz 22.05kHz 24kHz 32kHz 44.1kHz 48kHz 
      1 2 Channels
      320000bps VBR
    Content Protection
      02 00 
< AVDTP(s): Capabilities cmd: transaction 14 nsp 0x00
    ACP SEID 1
> AVDTP(s): Capabilities rsp: transaction 14 nsp 0x00
    Media Transport
    Media Codec - SBC
      16kHz 32kHz 44.1kHz 48kHz 
      Mono DualChannel Stereo JointStereo 
      4 8 12 16 Blocks
      4 8 Subbands
      SNR Loudness 
      Bitpool Range 2-53
    Content Protection
      02 00 
< AVDTP(s): Set config cmd: transaction 15 nsp 0x00
    ACP SEID 1 - INT SEID 1
    Media Transport
    Media Codec - SBC
      44.1kHz 
      JointStereo 
      16 Blocks
      8 Subbands
      Loudness 
      Bitpool Range 2-53
> AVDTP(s): Set config rsp: transaction 15 nsp 0x00
< AVDTP(s): Open cmd: transaction 0 nsp 0x00
    ACP SEID 1
> AVDTP(s): Open rsp: transaction 0 nsp 0x00
< AVDTP(s): Start cmd: transaction 1 nsp 0x00
    ACP SEID 1
> AVDTP(s): Start rsp: transaction 1 nsp 0x00
< AVDTP(m): ver 2 cc 0 pt 1 seqn 0 time 0 ssrc 1
< AVDTP(m): ver 2 cc 0 pt 1 seqn 1 time 896 ssrc 1

Dépannage

  • A2DP est unidirectionnel . Vous ne pouvez écouter de la musique qu’avec A2DP . Pour les appels vocaux, utilisez les profils HSP/HFP.
  • Si les écouteurs ou les périphériques ne sont pas reconnus ou répertoriés comme périphériques de sortie, par exemple dans VLC, essayez de passer à une autre carte son et de revenir en arrière via les paramètres audio. Les appareils doivent alors être reconnus.

Qu'en est-il du téléphone Ubuntu?

Je ne sais pas si Ubuntu sur Phones supportera ce codec. Les documents RSE indiquent que les solutions sont disponibles pour les fabricants d'appareils Android. Je suppose donc qu'il appartient aux fabricants de téléphones de décider si et comment. Bien entendu, Ubuntu Touch prend généralement en charge les casques Bluetooth et j’ai pu associer mon Nexus 4 sous Ubuntu aux casques que j’ai testés.


Mon expérience et mes tests

Modules Bluetooth et dongles testés:

  • Ordinateur de bureau avec dongles Bluetooth nano Bluetooth 2.1 et 4.0, Lenovo T530 avec module intégré. - A2DP atteint presque le même niveau de qualité que le BTD 500 lors de la lecture de musique à partir de fichiers FLAC. L'audio des films était synchronisé avec 14.04.
  • Sennheiser BTD 500 USB. - Le couplage prend aussi longtemps que avec des dongles standard non compatibles NFC.

Casques testés:

  • Philips Fidelio M1BTBL, Bluetooth 4.0. - Fonctionne bien avec tous les dongles et modules.
  • Sony MDR-10RBT, Bluetooth 3.0, NFC. - Fonctionne bien avec tous les dongles et modules.
  • Creative Sound Blaster EVO ZxR, Bluetooth 2.1, NFC. - Celui-ci avait la meilleure plage de réception des trois, mais ne pouvait pas se connecter au BTD 500.
37
LiveWireBT