Wie kann ich mit Ubuntu aptX-fähige Bluetooth-Geräte zum Laufen bringen?

24

Ich habe ein aptX-fähiges Headset und möchte damit Musik mit der höchstmöglichen Audioqualität abspielen, die das Headset in Ubuntu technisch bieten kann. Wie kann ich das machen?

Während A2DP optional viele Codecs unterstützt und erweiterbar ist, um andere herstellerdefinierte Codecs zu unterstützen. AptX bietet nicht nur eine bessere Audioqualität als die Konkurrenz, sondern wirbt auch dafür, die Verzögerung für die Lippensynchronisation beim Ansehen von Videos zu verringern.

Hier sind meine Fragen:

  • Wie kann ich aptX-fähige Bluetooth-Geräte dazu bringen, diesen Codec in Ubuntu zu verwenden?
    • Welche Lösungen gibt es?
  • Wie kann ich eine bestehende Verbindung für den verwendeten Codec überprüfen und verifizieren?

Ich möchte darauf hinweisen, dass dies vielleicht wie ein gesponserter Beitrag aussieht, aber nicht. Meiner Meinung nach sollten FLAC und Opus der Goldstandard sein, aber meines Wissens sind Geräte mit Unterstützung für diese Codecs derzeit nicht verfügbar.

LiveWireBT
quelle

Antworten:

41

Edit 2018-10-27: LDAC, APTX (-HD) und AAC-Unterstützung für PulseAudio sind in Arbeit. Es gibt ein Repository auf GitHub von EHfive mit Patches sowie einen PPA ab 18.04. Weitere Informationen finden Sie im Wiki. Es sieht so aus, als ob die Patches irgendwann flussaufwärts ankommen werden. Ich habe das PPA am 18.04 überprüft, es funktioniert, obwohl es PA 11.1 durch 12 ersetzt, eine neuere Version von ffmpeg und x265 installiert.

Edit 2017-12-18: Ich muss es vor ein paar Wochen verpasst haben, aber es sieht so aus, als gäbe es jetzt einen Encoder in FFmpeg . Meines Wissens gibt es derzeit keine benutzerfreundliche Lösung.

Die kurze Antwort

Sie müssen spezielle Bluetooth-Dongles verwenden. Schauen Sie sich an, wie ich dann aptX nutzen kann. Abschnitt dieser Antwort oder durchsuchen Sie die Website aptx.com nach Sendern .


Die längere Antwort

Lizenzprobleme

Der aptX-Codec ist ein proprietärer Standard, den CSR von APT Licensing Ltd. mit dem Ziel erworben hat, mit aptX betriebene High-Fidelity-Bluetooth-Audiolösungen über Ingredient Branding zu entwickeln und zu vermarkten . Sie haben Recht, dies ist eine Strategie für CSR, um exklusive Chips zu verkaufen.

Ich habe die folgende Klausel gefunden, als ich die Decoder-Lizenzvereinbarung durchgesehen habe :

  • Implementieren Sie die Software als Firmware in einem sicheren Code, der in das Lizenznehmerprodukt eingebettet ist

Dies beantwortet zwar keine Fragen zum Encoder, aber ich würde sagen, dass die Situation mindestens so schwierig ist wie bei anderen proprietären Codecs und Softwarekomponenten ( 1 , 2 , 3 ).

Wie kann ich dann aptX nutzen?

Sie können es nur nicht als freie Softwarelösung verwenden.

Es gibt spezielle Marken-Bluetooth-Dongles, sogenannte aptX-Sender. Dies sind keine typischen Bluetooth-Dongles in Nano- oder Pico-Größe, sondern Geräte der USB-Audio-Klasse. ( Weitere Informationen finden Sie im Abschnitt über Geräteklassen im USB-Artikel in Wikipedia.) Dies bedeutet, dass diese Geräte als Soundkarten erkannt werden und keine Bluetooth-Verbindung zum Host-Computer herstellen. Es gibt auch einen großen Nachteil: Diese kosten fast zehnmal so viel wie normale Bluetooth-Dongles.

Liste der aptX-Sender oder Bluetooth-Dongles mit aptX-Unterstützung in alphabetischer Reihenfolge:

  • Creative BT-D1 USB-Bluetooth-Sender, 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 mit aptX LL

(Ergänzungen sind willkommen! Ich würde gerne - vorzugsweise billigere - Alternativen sehen.)

Überprüfen Sie den konfigurierten Codec einer Verbindung

Installieren bluez-hcidumpund starten Sie sudo hcidump avdtpdas Gerät, schließen Sie es an und suchen Sie nach der Konfigurationsaushandlung. Folgendes ist das Ergebnis, das ich bekommen habe (siehe auch ), es sieht so aus, als hätte es aptX, AAC ausprobiert und sich schließlich für SBC entschieden.

$ 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

Fehlerbehebung

  • A2DP ist unidirektional, Sie können nur mit A2DP Musik hören . Verwenden Sie für Sprachanrufe die HSP / HFP-Profile.
  • Wenn Kopfhörer oder Geräte nicht erkannt werden oder beispielsweise in VLC nicht als Ausgabegerät aufgeführt sind, versuchen Sie, über die Toneinstellungen zu einer anderen Soundkarte und zurück zu wechseln. Die Geräte sollten dann erkannt werden.

Was ist mit Ubuntu Phone?

Ich weiß nicht, ob Ubuntu on Phones diesen Codec unterstützen wird. CSR-Dokumente besagen, dass Lösungen für Android-Gerätehersteller verfügbar sind. Ich gehe davon aus, dass die Telefonhersteller entscheiden müssen, ob und wie. Natürlich unterstützt Ubuntu Touch im Allgemeinen Bluetooth-Headsets und ich konnte mein Nexus 4 mit Ubuntu mit den getesteten Headsets koppeln.


Meine Erfahrungen und Tests

Getestete Bluetooth-Module und Dongles:

  • Desktop mit Nano Bluetooth 2.1 und 4.0 Dongles, Lenovo T530 mit eingebautem Modul. - Beim Abspielen von Musik aus FLAC-Dateien erreichte A2DP fast das gleiche Qualitätsniveau wie der BTD 500. Audio von Filmen war synchron mit 14.04.
  • Sennheiser BTD 500 USB. - Das Pairing dauert so lange wie bei normalen Dongles, die nicht NFC-fähig sind.

Headsets getestet:

  • Philips Fidelio M1BTBL, Bluetooth 4.0. - Funktioniert gut mit allen Dongles und Modulen.
  • Sony MDR-10RBT, Bluetooth 3.0, NFC. - Funktioniert gut mit allen Dongles und Modulen.
  • Kreativer Sound Blaster EVO ZxR, Bluetooth 2.1, NFC. - Dieser hatte die beste Empfangsreichweite von allen dreien, konnte jedoch keine Verbindung zum BTD 500 herstellen.
LiveWireBT
quelle
1
Wie haben Sie überprüft, ob ein Gerät tatsächlich eine Verbindung mit aptX anstelle von SBC herstellt?
Pseudosavant
Avantree stellt auch ein Modell BTDG-50-WGR her. Nein, ich arbeite nicht für sie, es sind nur gute Informationen zu wissen.
Mtl Dev
Aus Neugier und definitiv nicht, weil ich niemals 40 Dollar für einen verdammten Dongle bezahlen würde, hat niemand jemals die binäre / erstellte Alternative rekonstruiert, die sich wie Aptx verbinden würde, das an einigen schattigen Orten verfügbar wäre?
Jezor
1
@Jezor Ich habe nicht in schattigen Gegenden gesucht, weil ich nicht so viel Interesse oder technische Fähigkeiten hatte, und ich war damals nicht in der Lage, etwas darüber zu finden. Vielleicht haben es einige Leute getan, ich weiß es nicht und ich bevorzuge eher eine Open-Source-Lösung, wie ich geschrieben habe. LDAC scheint aptX obsolet zu machen und ist meines Wissens offener.
LiveWireBT
Azio BTD-v401 bewirbt auch die aptX-Fähigkeit, aber ich kann nicht sagen, ob es mit Ubuntu oder einem anderen Linux kompatibel ist.
Kapad