Editar 2017-12-18: Eu devo ter perdido há algumas semanas, mas parece que há um codificador agora em FFmpeg . Para meu conhecimento, nenhuma solução amigável ao usuário existe no momento.
A resposta curta
Você tem que usar dongles Bluetooth de marca especial. Dê uma olhada na seção Como posso usar o aptX então? desta resposta ou navegue no site aptx.com para transmissores .
A resposta mais longa
Problemas de licenciamento
O codec aptX é um padrão proprietário, que CSR adquirido da APT Licensing Ltd. com o objetivo de desenvolver e comercializar o aptX soluções de áudio Bluetooth de alta fidelidade via marca de ingredientes . Você está correto, essa é uma estratégia para a CSR vender fichas exclusivas.
Encontrei a seguinte cláusula ao analisar o contrato de licença do decodificador :
- implementa o software como firmware no 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 com outros codecs proprietários e componentes de software ( 1 , 2 , 3 ).
Como posso usar o aptX então?
Você pode usá-lo, não apenas como uma solução de software livre.
Você pode encontrar dongles Bluetooth de marca especial, chamados de transmissores aptX. Estes não são os típicos dongles Bluetooth tamanho nano ou pico, mas sim dispositivos USB Audio Class. (Dê uma olhada na seção classes de dispositivos no artigo sobre USB na Wikipedia para obter mais informações.) Isso significa que esses os dispositivos serão reconhecidos como placas de som e não fornecerão conectividade Bluetooth ao computador host. Há também uma grande desvantagem: eles custam quase 10 vezes mais que os dongles Bluetooth normais.
Lista de dongles aptX ou Bluetooth com suporte ao aptX em ordem alfabética:
- Transmissor Bluetooth USB Creative BT-D1, 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 o 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
, depois conecte o dispositivo e procure a negociação de configuração. O seguinte é o resultado que eu tenho (veja também ), parece que ele tentou o aptX, AAC e finalmente resolveu pela 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 os 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 via configurações de som. Os dispositivos devem ser reconhecidos então.
E o Ubuntu Phone?
Não sei se o Ubuntu em telefones suportará este codec. Os documentos de RSE dizem que as soluções estão disponíveis para os fabricantes de dispositivos Android, por isso suponho que cabe aos fabricantes de telefones decidir se e como. É claro que o Ubuntu Touch geralmente suporta fones de ouvido Bluetooth e eu consegui emparelhar meu Nexus 4 com Ubuntu com os fones de ouvido que testei.
Minha experiência e testes
Módulos Bluetooth e dongles testados:
- Desktop com dongles nano Bluetooth 2.1 e 4.0, Lenovo T530 com módulo incorporado. - O A2DP alcançou quase o mesmo nível de qualidade do BTD 500 ao reproduzir músicas de arquivos FLAC. O áudio dos filmes estava em sincronia com o 14.04.
- Sennheiser BTD 500 USB. - O emparelhamento demora tanto quanto com dongles normais não 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 de todos os três, mas não podia se conectar ao BTD 500.