web-dev-qa-db-ja.com

aptX対応のBluetooth機器をUbuntuで動作させる方法は?

aptX-capable ヘッドセットがあり、それを使用して、ヘッドセットがUbuntuで技術的に提供できる最高のオーディオ品質で音楽を再生したいと思います。どうやってやるの?

A2DP はオプションで多くのコーデックをサポートし、他のメーカー定義のコーデックをサポートするために拡張可能です。 AptXは、競合他社よりも優れた音質を提供することを自慢しているだけでなく、ビデオを見ているときにリップシンクオーディオを使用するための遅延を減らすことも宣伝しています。

ここに私の質問があります:

  • UbuntuでこのコーデックをaptX対応のBluetooth機器で使用するにはどうすればよいですか?
    • どのソリューションが利用可能ですか?
  • 使用するコーデックの確立された接続を確認および検証するにはどうすればよいですか?

これはスポンサー付きの投稿のように見えるかもしれませんが、そうではありません。私の意見では、FLACとOpusはゴールドスタンダードであるべきですが、私の知る限り、これらのコーデックをサポートするデバイスは現在利用できません。

23
LiveWireBT

2018-10-27の編集:PulseAudioのLDAC、APTX(-HD)、およびAACのサポートが進行中です。 EHfiveによるGitHubのリポジトリ があり、パッチと18.04以降のPPAがあります。詳細については、Wikiを確認してください。パッチはある時点でアップストリームに到着するようです。私は18.04でPPAをチェックしましたが、PA 11.1を12に置き換えても動作しますが、ffmpegとx265の新しいバージョンをインストールします。

編集2017-12-18:数週間前に見逃していたはずですが、エンコーダが FFmpeg にあるようです。私の知る限り、現時点ではユーザーフレンドリーなソリューションは存在しません。

短い答え

特別なブランドのBluetoothドングルを使用する必要があります。 どのようにaptXを使用できますか?この回答のセクション、またはトランスミッター


長い答え

ライセンスの問題

AptXコーデックは独自の標準であり、 CSR APT Licensing Ltd.から取得し、aptX搭載の高忠実度Bluetoothオーディオソリューションを ingredientブランディング 。あなたは正しい、これはCSRが排他的なチップを販売する戦略です。

デコーダ使用許諾契約 を調べたところ、次の条項が見つかりました。

  • ライセンシー製品に埋め込まれた安全なコードのファームウェアとしてソフトウェアを実装する

これはエンコーダーについての質問には答えませんが、状況は少なくとも他の独自のコーデックやソフトウェアコンポーネントと同じくらい難しいと思います( 12 、- )。

AptXを使用するにはどうすればよいですか?

フリーソフトウェアソリューションとしてではなく、使用できます。

AptXトランスミッターと呼ばれる特別なブランドのBluetoothドングルを見つけることができます。これらは、典型的なナノサイズまたはピコサイズのBluetoothドングルではなく、USBオーディオクラスデバイスです。 (詳細については、WikipediaのUSB記事の デバイスクラス セクションをご覧ください。)これは、これらのデバイスがサウンドカードとして認識され、ホストコンピューターへのBluetooth接続が提供されないことを意味します。また、大きなマイナス面も1つあります。これらは通常のBluetoothドングルのほぼ10倍の費用がかかります。

aptXトランスミッターまたはaptXサポート付きBluetoothドングルのアルファベット順のリスト:

  • Creative BT-D1 USB Bluetoothトランスミッター、Bluetooth 2.1 + EDR
  • クリエイティブBT-W1/BT-W2 USB、Bluetooth 2.1 + EDR
  • ゼンハイザーBTD 500 USB、Bluetooth 3.0
  • Avantree BTDG-50-WGR、Bluetooth 4.1 with aptX LL

(サプリメントは大歓迎です!できれば安価な代替品が欲しいです。)

接続の構成済みコーデックを確認する

bluez-hcidumpをインストールしてSudo hcidump avdtpを実行し、デバイスを接続して構成ネゴシエーションを探します。これは私が得た結果です( also を参照)。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

トラブルシューティング

  • A2DPは単方向です。A2DPでのみ音楽を聴くことができます。音声通話には、HSP/HFPプロファイルを使用します。
  • ヘッドフォンやデバイスが認識されない場合、またはVLCなどで出力デバイスとしてリストされている場合は、別のサウンドカードに切り替えて、サウンド設定で元に戻します。その後、デバイスが認識されるはずです。

Ubuntu Phoneはどうですか?

Phones上のUbuntuがこのコーデックをサポートするかどうかはわかりません。 CSR文書では、ソリューションはAndroidデバイスメーカー向けに提供されているため、電話メーカーの判断と方法を判断する必要があります。もちろん、Ubuntu Touchは一般的にBluetoothヘッドセットをサポートしており、Ubuntuを実行しているNexus 4をテストしたヘッドセットとペアにすることができました。


私の経験とテスト

テスト済みのBluetoothモジュールとドングル:

  • Nano Bluetooth 2.1および4.0ドングルを備えたデスクトップ、モジュールが組み込まれたLenovo T530。 -A2DPは、FLACファイルから音楽を再生するときに、BTD 500とほぼ同じ品質レベルを達成しました。映画の音声は14.04と同期していました。
  • ゼンハイザーBTD 500 USB。 -ペアリングには、通常の非NFC対応ドングルと同じ時間がかかります。

テスト済みのヘッドセット:

  • Philips Fidelio M1BTBL、Bluetooth 4.0。 -すべてのドングルおよびモジュールで正常に動作します。
  • ソニーMDR-10RBT、Bluetooth 3.0、NFC。 -すべてのドングルおよびモジュールで正常に動作します。
  • Creative Sound Blaster EVO ZxR、Bluetooth 2.1、NFC。 -これは、3つすべての中で最高の受信範囲を持っていましたが、BTD 500に接続できませんでした。
37
LiveWireBT