如何让支持 aptX 的蓝牙设备与 Ubuntu 一起工作?

Liv*_*eBT 30 headphones bluetooth headset a2dp

我有一个支持aptX 的耳机,我想用它来播放具有耳机在 Ubuntu 中技术上所能提供的最高音质的音乐。我怎样才能做到这一点?

A2DP可选地支持许多编解码器,并且可以扩展以支持其他制造商定义的编解码器。AptX 不仅吹嘘提供比竞争对手更好的音频质量,而且还宣传在观看视频时减少延迟以具有口型同步音频。

以下是我的问题:

  • 如何让支持 aptX 的蓝牙设备在 Ubuntu 中使用这个编解码器?
    • 有哪些解决方案?
  • 如何检查和验证它​​使用的编解码器的已建立连接?

我想指出的是,虽然这看起来像是赞助帖子,但事实并非如此。在我看来,FLAC 和 Opus 应该是黄金标准,但据我所知,支持这些编解码器的设备目前尚不可用。

Liv*_*eBT 49

编辑 2018-10-27:对 PulseAudio 的 LDAC、APTX(-HD) 和 AAC 支持正在进行中。EHfive 在 GitHub 上有一个带有补丁的存储库以及 18.04 以后的 PPA,请查看 Wiki 以获取更多信息。看起来补丁会在某个时间点到达上游。我在 18.04 上检查了 PPA,它可以工作,但它用 12 替换了 PA 11.1,安装了较新版本的 ffmpeg 和 x265。

编辑 2017-12-18:几周前我一定错过了它,但现在FFmpeg 中似乎有一个编码器。据我所知,目前不存在用户友好的解决方案。

简短的回答

您必须使用特殊品牌的蓝牙加密狗。看看然后如何使用 aptX?此答案的部分或浏览 aptx.com 站点以查找发射器


更长的答案

许可问题

aptX 编解码器是专有标准,CSR从 APT Licensing Ltd. 获得该标准,其目标是通过成分品牌开发和销售 aptX 驱动的高保真蓝牙音频解决方案。你说得对,这是南车独家销售芯片的策略。

在查看解码器许可协议时,我发现了以下条款:

  • 在被许可方产品中嵌入的安全代码中将软件作为固件实施

虽然这不会回答有关提问编码器,我会说,这种情况至少是困难的,因为与其他专有编解码器和软件组件(123)。

那我该如何使用aptX呢?

您可以使用它,但不能作为免费软件解决方案使用。

您可以找到特殊品牌的蓝牙加密狗,即所谓的 aptX 发射器。这些不是典型的 nano 或 pico 大小的蓝牙加密狗,而是 USB 音频类设备。(有关更多信息,请查看 Wikipedia 中 USB 文章的设备类部分。)这意味着这些设备将被识别为声卡,并且不会提供与主机的蓝牙连接。还有一个主要缺点:它们的成本几乎是普通蓝牙加密狗的 10 倍。

按字母顺序排列的支持aptX 的 aptX 发射器蓝牙软件狗列表:

  • Creative BT-D1 USB 蓝牙发射器,蓝牙 2.1 + EDR
  • Creative BT-W1/BT-W2 USB, 蓝牙 2.1 + EDR
  • 森海塞尔 BTD 500 USB,蓝牙 3.0
  • Avantree BTDG-50-WGR,带有 aptX LL 的蓝牙 4.1
  • 1mii B10,带有aptX LL 的蓝牙 5.0,通过AskNoah,ASIN:B083TD9VW4(美国),B086KXR1CF(德国)
  • Avantree DG80,带有 aptX LL 的蓝牙 5.0
    • 看起来类似于 1mii B10,可能是。作为赞助的亚马逊搜索结果出现。我将测试两者,特别是在立体声模式下使用两个 Nest Audio,目前有 1 秒的延迟,我必须在 PulseAudio 中进行调整。

检查已配置的连接编解码器

安装bluez-hcidump并运行sudo hcidump avdtp,然后连接设备并寻找配置协商。下面这是我得到了(见结果),它看起来像它试图APTX,AAC终于尘埃落定了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
Run Code Online (Sandbox Code Playgroud)

故障排除

  • A2DP 是单向的,你只能用 A2DP 听音乐。对于语音呼叫,请使用 HSP/HFP 配置文件。
  • 如果耳机或设备未被识别或列为输出设备,例如在 VLC 中,请尝试切换到另一个声卡并通过声音设置返回。然后应该可以识别这些设备。

Ubuntu手机怎么样?

我不知道手机上的 Ubuntu 是否会支持这个编解码器。CSR 文件说 Android 设备制造商可以使用解决方案,因此我认为由手机制造商决定是否以及如何决定。当然,Ubuntu Touch 通常支持蓝牙耳机,我能够将运行 Ubuntu 的 Nexus 4 与我测试过的耳机配对。


我的经验和测试

蓝牙模块和加密狗测试:

  • 带有 nano 蓝牙 2.1 和 4.0 加密狗的台式机,带有内置模块的联想 T530。- 从 FLAC 文件播放音乐时,A2DP 实现了与 BTD 500 几乎相同的质量水平。电影中的音频与 14.04 同步。
  • 森海塞尔 BTD 500 USB。- 配对所需的时间与常规的非 NFC 加密狗一样长。

耳机测试:

  • 飞利浦 Fidelio M1BTBL,蓝牙 4.0。- 适用于所有加密狗和模块。
  • 索尼 MDR-10RBT、蓝牙 3.0、NFC。- 适用于所有加密狗和模块。
  • Creative Sound Blaster EVO ZxR、蓝牙 2.1、NFC。- 这台在所有三台中具有最佳的接收范围,但无法连接到 BTD 500。

  • 您是如何检查设备是否实际使用 aptX 而不是 SBC 进行连接的? (3认同)