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-hcidump
e 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.