Jak sprawić, aby sprzęt Bluetooth obsługujący aptX współpracował z Ubuntu?

24

Mam zestaw słuchawkowy obsługujący aptX i chcę go używać do odtwarzania muzyki z najwyższą możliwą jakością dźwięku, jaką zestaw słuchawkowy może technicznie zapewnić w systemie Ubuntu. Jak mogę to zrobić?

Podczas gdy A2DP opcjonalnie obsługuje wiele kodeków i jest rozszerzalny w celu obsługi innych kodeków zdefiniowanych przez producenta. AptX nie tylko może pochwalić się lepszą jakością dźwięku niż konkurencja, ale także reklamuje, aby zmniejszyć opóźnienie synchronizacji dźwięku podczas oglądania wideo.

Oto moje pytania:

  • Jak sprawić, aby sprzęt Bluetooth obsługujący aptX korzystał z tego kodeka w systemie Ubuntu?
    • Jakie rozwiązania są dostępne?
  • Jak mogę sprawdzić i zweryfikować ustanowione połączenie dla używanego kodeka?

Chciałbym zwrócić uwagę, chociaż może to wyglądać jak post sponsorowany, ale tak nie jest. Moim zdaniem FLAC i Opus powinny być złotym standardem, ale według mojej wiedzy urządzenia z obsługą tych kodeków nie są obecnie dostępne.

LiveWireBT
źródło

Odpowiedzi:

41

Edytuj 2018-10-27: Trwają prace nad obsługą LDAC, APTX (-HD) i AAC dla PulseAudio. Na GitHub firmy EHfive znajduje się repozytorium z łatkami, a także PPA od 18.04. Więcej informacji na Wiki. Wygląda na to, że łatki pojawią się w pewnym momencie. Sprawdziłem PPA 18.04, działa, choć zastępuje PA 11.1 12, instaluje nowszą wersję ffmpeg i x265.

Edytuj 2017-12-18: Musiałem go przegapić kilka tygodni temu, ale wygląda na to, że w FFmpeg jest teraz koder . Według mojej wiedzy nie ma obecnie przyjaznego dla użytkownika rozwiązania.

Krótka odpowiedź

Musisz użyć specjalnych markowych kluczy Bluetooth. Spójrz więc na Jak mogę używać aptX? sekcji tej odpowiedzi lub przejrzyj stronę aptx.com w poszukiwaniu nadajników .


Dłuższa odpowiedź

Problemy z licencjonowaniem

Kodek aptX jest zastrzeżonym standardem, który CSR nabył od APT Licensing Ltd. w celu opracowania i wprowadzenia na rynek zasilanych aptX wysokiej jakości rozwiązań audio Bluetooth poprzez znakowanie składników . Masz rację, jest to strategia CSR na sprzedaż ekskluzywnych żetonów.

Podczas przeglądania umowy licencyjnej na dekoder znalazłem następującą klauzulę :

  • wdrożyć Oprogramowanie jako oprogramowanie wewnętrzne w bezpiecznym kodzie osadzonym w Licencjobiorcy

Chociaż nie odpowiada to na pytania dotyczące kodera, powiedziałbym, że sytuacja jest co najmniej tak trudna, jak w przypadku innych zastrzeżonych kodeków i komponentów oprogramowania ( 1 , 2 , 3 ).

Jak zatem mogę użyć aptX?

Możesz go używać, nie tylko jako rozwiązanie wolnego oprogramowania.

Możesz znaleźć specjalne markowe klucze Bluetooth, tak zwane nadajniki aptX. Nie są to typowe klucze Bluetooth w rozmiarze nano lub pico, ale urządzenia USB Audio Class. (Aby uzyskać więcej informacji, zapoznaj się z sekcją klas urządzeń w artykule na temat USB w Wikipedii). Oznacza to, że urządzenia te zostaną rozpoznane jako karty dźwiękowe i nie zapewnią łączności Bluetooth z komputerem hosta. Jest też jedna poważna wada: kosztują one prawie 10 razy tyle, co zwykłe klucze Bluetooth.

Lista nadajników aptX lub kluczy Bluetooth z obsługą aptX w kolejności alfabetycznej:

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

(Suplementy są mile widziane! Chciałbym zobaczyć - najlepiej tańsze - alternatywy).

Sprawdź skonfigurowany kodek połączenia

Zainstaluj bluez-hcidumpi uruchom sudo hcidump avdtp, a następnie podłącz urządzenie i poszukaj negocjacji konfiguracji. Oto wynik, który otrzymałem (patrz także ), wygląda na to, że wypróbował aptX, AAC i ostatecznie zdecydował się na 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

Rozwiązywanie problemów

  • A2DP jest jednokierunkowy, możesz słuchać muzyki tylko za pomocą A2DP . Do połączeń głosowych używaj profili HSP / HFP.
  • Jeśli słuchawki lub urządzenia nie zostaną rozpoznane lub wymienione jako urządzenia wyjściowe, na przykład w VLC, spróbuj przełączyć na inną kartę dźwiękową i wrócić za pomocą ustawień dźwięku. Urządzenia powinny wtedy zostać rozpoznane.

Co z telefonem Ubuntu?

Nie wiem, czy Ubuntu na telefony obsługuje ten kodek. Dokumenty CSR mówią, że rozwiązania są dostępne dla producentów urządzeń z Androidem, więc zakładam, że to producenci telefonów decydują, czy i jak. Oczywiście Ubuntu Touch ogólnie obsługuje zestawy słuchawkowe Bluetooth i mogłem sparować mój Nexus 4 z systemem Ubuntu z zestawami słuchawkowymi, które testowałem.


Moje doświadczenie i testy

Testowane moduły i klucze Bluetooth:

  • Komputer stacjonarny z kluczami nano Bluetooth 2.1 i 4.0, Lenovo T530 z wbudowanym modułem. - A2DP osiągnął prawie taki sam poziom jakości jak BTD 500 podczas odtwarzania muzyki z plików FLAC. Dźwięk z filmów był zsynchronizowany z 14.04.
  • Sennheiser BTD 500 USB. - Parowanie trwa tak długo, jak w przypadku zwykłych kluczy sprzętowych nieobsługujących NFC.

Testowane zestawy słuchawkowe:

  • Philips Fidelio M1BTBL, Bluetooth 4.0. - Działa poprawnie ze wszystkimi kluczami sprzętowymi i modułami.
  • Sony MDR-10RBT, Bluetooth 3.0, NFC. - Działa poprawnie ze wszystkimi kluczami sprzętowymi i modułami.
  • Creative Sound Blaster EVO ZxR, Bluetooth 2.1, NFC. - Ten miał najlepszy zasięg odbioru spośród wszystkich trzech, ale nie mógł połączyć się z BTD 500.
LiveWireBT
źródło
1
Jak sprawdziłeś, czy urządzenie faktycznie łączy się za pomocą aptX zamiast SBC?
pseudosavant
Avantree produkuje również jeden model BTDG-50-WGR. Nie, nie pracuję dla nich, to tylko dobra informacja, aby wiedzieć.
Mtl Dev
Z ciekawości i na pewno nie dlatego, że nigdy nie zapłaciłbym 40 dolarów za cholerny klucz, nikt nigdy nie zrekonstruował binarnej / stworzonej alternatywy, która łączyłaby się jak aptx, która byłaby dostępna w niektórych podejrzanych miejscach?
Jezor
1
@Jezor Nie szukałem w zacienionych miejscach, ponieważ nie miałem tak dużego zainteresowania ani umiejętności technicznych, ani wtedy nie byłem w stanie nic o tym wiedzieć. Może niektórzy wiedzieli, nie wiem i wolę rozwiązanie typu open source, jak napisałem. Wygląda na to, że LDAC sprawia, że ​​aptX staje się przestarzały i o ile wiem, jest bardziej otwarty.
LiveWireBT
Azio BTD-v401 również reklamuje możliwości aptX, ale nie mogę komentować jego zgodności z Ubuntu ani żadnym linuksem.
kapad