¿Cómo hacer que un equipo Bluetooth apto para aptX funcione con Ubuntu?

24

Tengo un auricular apto para aptX y quiero usarlo para reproducir música con la mejor calidad de audio posible que el auricular pueda proporcionar técnicamente en Ubuntu. ¿Cómo puedo hacer eso?

Si bien A2DP admite muchos códecs opcionalmente y es extensible para admitir otros códecs definidos por el fabricante. AptX no solo se jacta de proporcionar una mejor calidad de audio que la competencia, sino que también anuncia reducir el retraso para tener audio de sincronización de labios al mirar videos.

Aquí están mis preguntas:

  • ¿Cómo puedo hacer que un equipo Bluetooth apto para aptX use este códec en Ubuntu?
    • ¿Qué soluciones hay disponibles?
  • ¿Cómo puedo verificar y verificar una conexión establecida para el códec que utiliza?

Me gustaría señalar que, si bien esto puede parecer una publicación patrocinada, no lo es. En mi opinión, FLAC y Opus deberían ser el estándar de oro, pero que yo sepa, los dispositivos con soporte para estos códecs no están disponibles en este momento.

LiveWireBT
fuente

Respuestas:

41

Editar 2018-10-27: LDAC, APTX (-HD) y soporte AAC para PulseAudio están en proceso. Hay un repositorio en GitHub de EHfive con parches, así como un PPA para 18.04 en adelante, consulte el Wiki para obtener más información. Parece que los parches llegarán corriente arriba en algún momento. Revisé el PPA en 18.04, funciona, aunque reemplaza PA 11.1 con 12, instala una versión más nueva de ffmpeg y x265.

Editar 2017-12-18: Debo haberlo perdido hace unas semanas, pero parece que ahora hay un codificador en FFmpeg . Que yo sepa, no existe una solución fácil de usar en este momento.

La respuesta corta

Debe usar dongles Bluetooth de marca especial. Echa un vistazo a ¿Cómo puedo usar aptX entonces? sección de esta respuesta o navegue por el sitio aptx.com para transmisores .


La respuesta más larga

Problemas de licencia

El códec aptX es un estándar patentado que CSR adquirió de APT Licensing Ltd. con el objetivo de desarrollar y comercializar soluciones de audio Bluetooth de alta fidelidad con tecnología aptX a través de la marca de ingredientes . Tiene razón, esta es una estrategia para que CSR venda chips exclusivos.

Encontré la siguiente cláusula al consultar el acuerdo de licencia del decodificador :

  • implementar el software como firmware en un código seguro integrado en el producto del licenciatario

Si bien esto no responde preguntas sobre el codificador, diría que la situación es al menos tan difícil como con otros códecs y componentes de software patentados ( 1 , 2 , 3 ).

¿Cómo puedo usar aptX entonces?

Puede usarlo, pero no como una solución de software libre.

Puede encontrar dongles Bluetooth especiales de marca, llamados Transmisores aptX. Estos no son los típicos dongles Bluetooth de tamaño nano o pico, sino dispositivos USB Audio Class. (Eche un vistazo a la sección de clases de dispositivos en el artículo de USB en Wikipedia para obtener más información). Esto significa que estos dispositivos serán reconocidos como tarjetas de sonido y no proporcionarán conectividad Bluetooth a la computadora host. También hay un inconveniente importante: estos cuestan casi 10 veces más que los dongles Bluetooth normales.

Lista de transmisores aptX o dongles Bluetooth con soporte aptX en orden alfabético:

  • Transmisor Bluetooth USB creativo BT-D1, Bluetooth 2.1 + EDR
  • USB creativo BT-W1 / BT-W2, Bluetooth 2.1 + EDR
  • Sennheiser BTD 500 USB, Bluetooth 3.0
  • Avantree BTDG-50-WGR, Bluetooth 4.1 con aptX LL

(¡Los suplementos son bienvenidos! Me encantaría ver alternativas, preferiblemente más baratas)

Verifique el códec configurado de una conexión

Instale bluez-hcidumpy ejecute sudo hcidump avdtp, luego conecte el dispositivo y busque la negociación de configuración. El siguiente es el resultado que obtuve (ver también ), parece que probó aptX, AAC y finalmente se conformó con 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

Solución de problemas

  • A2DP es unidireccional, solo puedes escuchar música con A2DP . Para llamadas de voz, use los perfiles HSP / HFP.
  • Si los auriculares o dispositivos no se reconocen o enumeran como dispositivo de salida, por ejemplo, en VLC, intente cambiar a otra tarjeta de sonido y volver a través de la configuración de sonido. Los dispositivos deben ser reconocidos entonces.

¿Qué pasa con Ubuntu Phone?

No sé si Ubuntu on Phones admitirá este códec. Los documentos de CSR dicen que las soluciones están disponibles para los fabricantes de dispositivos Android, por lo que supongo que corresponde a los fabricantes de teléfonos decidir si y cómo. Por supuesto, Ubuntu Touch generalmente admite auriculares Bluetooth y pude emparejar mi Nexus 4 con Ubuntu con los auriculares que probé.


Mi experiencia y pruebas

Módulos y dongles Bluetooth probados:

  • Computadora de escritorio con nano dongles Bluetooth 2.1 y 4.0, Lenovo T530 con módulo incorporado. - A2DP alcanzó casi el mismo nivel de calidad que el BTD 500 al reproducir música desde archivos FLAC. El audio de las películas estaba sincronizado con 14.04.
  • Sennheiser BTD 500 USB. - El emparejamiento tarda tanto como con los dongles normales que no son compatibles con NFC.

Auriculares probados:

  • Philips Fidelio M1BTBL, Bluetooth 4.0. - Funciona bien con todos los dongles y módulos.
  • Sony MDR-10RBT, Bluetooth 3.0, NFC. - Funciona bien con todos los dongles y módulos.
  • Creative Sound Blaster EVO ZxR, Bluetooth 2.1, NFC. - Este tenía el mejor rango de recepción de los tres, pero no podía conectarse al BTD 500.
LiveWireBT
fuente
1
¿Cómo comprobó si un dispositivo se está conectando realmente usando aptX en lugar de SBC?
pseudosavant
Avantree también fabrica uno, modelo BTDG-50-WGR. No, no trabajo para ellos, es solo una buena información para saber.
Mtl Dev
Por curiosidad y definitivamente no porque nunca pagaría $ 40 por un maldito dongle, ¿nadie reconstruyó la alternativa binaria / creada que se conectaría como aptx que estaría disponible en algunos lugares sombríos?
Jezor
1
@Jezor No busqué en lugares sombríos porque no tenía tanto interés o habilidad técnica ni pude encontrar nada sobre esto en ese entonces. Tal vez algunas personas lo hicieron, no sé y prefiero una solución de código abierto, como he escrito. LDAC parece dejar obsoleto aptX y es más abierto hasta donde yo sé.
LiveWireBT
Azio BTD-v401 también anuncia la capacidad de aptX, pero no puedo comentar sobre su compatibilidad con Ubuntu o cualquier Linux para el caso.
kapad