4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Linuxでbluez-alsaを使いLDACやらAACやらaptXをBluetoothで送信する話

Posted at

##LDACに関してはUbuntu系にppaがあるが…

pulseaudioで上手く行かなかった。

##ということでpulseaudioを使いたくない

いろいろな様々があり、上手く動かなかったので別解としてALSAのバックエンドで動くbluez-alsaを使ってみようかとなりました。aptXについてはリバースエンジニアリングしたものなのでインストール方法について詳しくは書きません。Bluezも最新の5.52にしました。

##作っていきます

まずはlibLDACを。まあbluez-alsaを最後にすれば順番はどうでもいいです。

https://github.com/EHfive/ldacBT

まあ、READMEに書いてある通りにやれば出来上がります。足りないライブラリは適宜追加していく感じで。自分でもちゃんとログを取っていないので申し訳ないです。

https://github.com/mstorsjo/fdk-aac

このライブラリを作るとMac系で標準のAACで送信もできるようになります。まあパッケージはあるんですが、これも適宜ライブラリを追加しつつインストールします。

https://github.com/Arkq/openaptx

まあLDACやAACのBT受信機があればなくてもいいのかな、と。どうしてもやりたい人は試行錯誤してみてください。

http://www.kernel.org/pub/linux/bluetooth/bluez-5.52.tar.xz

Bluezに関してはこっからソースコード落としてビルドしてください。

https://github.com/Arkq/bluez-alsa

で、bluez-alsaをビルドします。

##全然詳しく書きませんでしたが

openaptx以外はインストール方法がそれぞれで載っているのでこういうのもあるのよという紹介でした。aptXについてはAOSP由来のものも恐らくどっかにあると思うのでそこから作るのもいいのかも知れません。

Raspberry Pi 3B+でも動きますが、LDAC送信時にtopコマンドで見る限りではbluezalsaが30%ほどCPUを食っており、熱暴走なのか途中でBTの送信が途切れます。というかbluez-alsaが落ちます。4Bにすればマシになるのかなぁ。

AMD64(8年くらい前のCeleron)のサーバーマシンにBTドングルをつけた今の環境では安定して送信できています。

bluetoothctlを使い、scanしてtrustしてconnectすれば~/.asoundrcかなんかにBluetoothの受信側の機器が設定されていて、そこから音が出るようになっているはずです。

LDAC受信するヘッドホンを持っていますが、LDACで普通の音源を聞いている限りでは圧縮しているとは思えないほどの音質です。

またAOSPにソースが寄贈されている関係でAndroid8からは標準でLDAC、aptX、aptX HDが送信できるようになっています。それぞれのメーカーの判断に寄りますが…。ちなみにAQUOS R3では開発者オプションからLDACは選べるもののいざつなぐとaptX HDになってしまいました。変な意地張らずにLDAC送信できるようにして欲しかった。シャープめぇ…。

現場からは以上です。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?