Como fazer com que o equipamento Bluetooth compatível com aptX funcione com o Ubuntu?

24

Eu tenho um fone de ouvido com capacidade para o aptX e quero usá-lo para tocar música com a mais alta qualidade de áudio possível que o fone de ouvido possa fornecer tecnicamente no Ubuntu. Como eu posso fazer isso?

Enquanto o A2DP suporta muitos codecs opcionalmente e é extensível para suportar outros codecs definidos pelo fabricante. O AptX não apenas se orgulha de oferecer melhor qualidade de áudio que a concorrência, mas também anuncia para reduzir o atraso para ter o sincronismo labial ao assistir vídeos.

Aqui estão as minhas perguntas:

  • Como posso fazer com que equipamentos Bluetooth compatíveis com aptX usem esse codec no Ubuntu?
    • Que soluções estão disponíveis?
  • Como posso verificar e verificar uma conexão estabelecida para o codec que ele usa?

Gostaria de salientar que, embora possa parecer um post patrocinado, não é. Na minha opinião, FLAC e Opus devem ser o padrão-ouro, mas, para meu conhecimento, os dispositivos com suporte para esses codecs não estão disponíveis no momento.

LiveWireBT
fonte

Respostas:

41

Edite 2018-10-27: O suporte a LDAC, APTX (-HD) e AAC para o PulseAudio está em andamento. Existe um repositório no GitHub by EHfive com patches e um PPA a partir do 18.04. Verifique o Wiki para obter mais informações. Parece que os patches chegarão a montante em algum momento. Eu verifiquei o PPA no 18.04, ele funciona, embora substitua o PA 11.1 por 12, instala uma versão mais recente do ffmpeg e x265.

Edit 2017-12-18: Eu devo ter esquecido algumas semanas atrás, mas parece que agora há um codificador no FFmpeg . Que eu saiba, não existe uma solução amigável no momento.

A resposta curta

Você precisa usar dongles Bluetooth de marca especiais. Dê uma olhada no Como posso usar o aptX então? seção desta resposta ou navegar no site aptx.com para transmissores .


A resposta mais longa

Problemas de licenciamento

O codec aptX é um padrão proprietário, que a CSR adquiriu da APT Licensing Ltd. com o objetivo de desenvolver e comercializar soluções de áudio Bluetooth de alta fidelidade com o aptX via marca de ingredientes . Você está correto, esta é uma estratégia para a CSR vender chips exclusivos.

Encontrei a seguinte cláusula ao examinar o contrato de licença do decodificador :

  • implementar o Software como firmware em código seguro incorporado no Produto Licenciado

Embora isso não responda a perguntas sobre o codificador, eu diria que a situação é pelo menos tão difícil quanto em outros codecs e componentes de software proprietários ( 1 , 2 , 3 ).

Como posso usar o aptX então?

Você pode usá-lo, mas não como uma solução de software livre.

Você pode encontrar dongles Bluetooth de marca especiais, os chamados transmissores aptX. Esses não são os dongles Bluetooth típicos de tamanho nano ou pico, mas os dispositivos USB Audio Class. (Consulte a seção de classes de dispositivos no artigo USB na Wikipedia para obter mais informações.) Isso significa que esses dispositivos serão reconhecidos como placas de som e não fornecerão conectividade Bluetooth ao computador host. Há também uma grande desvantagem: elas custam quase 10 vezes mais do que os dongles Bluetooth comuns.

Lista de transmissores aptX ou dongles Bluetooth com suporte ao aptX em ordem alfabética:

  • Transmissor Bluetooth USB BT-D1 criativo, Bluetooth 2.1 + EDR
  • Criativo BT-W1 / BT-W2 USB, Bluetooth 2.1 + EDR
  • Sennheiser BTD 500 USB, Bluetooth 3.0
  • Avantree BTDG-50-WGR, Bluetooth 4.1 com aptX LL

(Suplementos são bem-vindos! Eu adoraria ver alternativas, de preferência mais baratas).

Verifique o codec configurado de uma conexão

Instale bluez-hcidumpe execute sudo hcidump avdtp, conecte o dispositivo e procure a negociação de configuração. A seguir, este é o resultado que obtive (veja também ), parece que ele tentou o aptX, AAC e finalmente se estabeleceu 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

Solução de problemas

  • A2DP é unidirecional, você só pode ouvir música com A2DP . Para chamadas de voz, use os perfis HSP / HFP.
  • Se fones de ouvido ou dispositivos não forem reconhecidos ou listados como dispositivo de saída, por exemplo, no VLC, tente alternar para outra placa de som e voltar através das configurações de som. Os dispositivos devem ser reconhecidos então.

E o Ubuntu Phone?

Não sei se o Ubuntu on Phones suportará esse codec. Os documentos de RSE dizem que as soluções estão disponíveis para os fabricantes de dispositivos Android; portanto, presumo que os fabricantes de telefones decidam se e como. É claro que o Ubuntu Touch geralmente suporta fones de ouvido Bluetooth e eu pude parear meu Nexus 4 executando o Ubuntu com os fones de ouvido que testei.


Minha experiência e testes

Módulos e dongles Bluetooth testados:

  • Desktop com nano Bluetooth 2.1 e 4.0 dongles, Lenovo T530 com módulo embutido. - O A2DP alcançou quase o mesmo nível de qualidade que o BTD 500 ao reproduzir músicas de arquivos FLAC. O áudio dos filmes estava sincronizado com o 14.04.
  • Sennheiser BTD 500 USB. - O emparelhamento demora tanto quanto com dongles normais que não sejam compatíveis com NFC.

Fones de ouvido testados:

  • Philips Fidelio M1BTBL, Bluetooth 4.0. - Funciona bem com todos os dongles e módulos.
  • Sony MDR-10RBT, Bluetooth 3.0, NFC. - Funciona bem com todos os dongles e módulos.
  • Creative Sound Blaster EVO ZxR, Bluetooth 2.1, NFC. - Este tinha o melhor alcance de recepção dos três, mas não conseguiu se conectar ao BTD 500.
LiveWireBT
fonte
1
Como você verificou se um dispositivo está realmente se conectando usando o aptX em vez do SBC?
Pseudosavant
A Avantree também fabrica uma, modelo BTDG-50-WGR. Não, eu não trabalho para eles, é apenas uma boa informação para saber.
Mtl Dev
Por curiosidade e definitivamente não porque eu nunca pagaria US $ 40 por um dongle, ninguém jamais reconstruiu a alternativa binária / criada que se conectaria como o aptx que estaria disponível em alguns lugares obscuros?
23717 Jezor
1
@Jezor Eu não olhei em lugares obscuros porque não tinha tanto interesse ou habilidade técnica, nem consegui encontrar nada sobre isso naquela época. Talvez algumas pessoas tenham, eu não sei, e prefiro uma solução de código aberto, como escrevi. O LDAC parece tornar obsoleto o aptX e é mais aberto até onde eu sei.
LiveWireBT
O Azio BTD-v401 também anuncia a capacidade do aptX, mas não posso comentar sobre sua compatibilidade com o Ubuntu ou qualquer linux.
Kapad