Android端末でSBCのBitpool値を確認する方法を紹介します。
SBCとは、Bluetoothで音声データを送る際のコーデックの一つで全てのBluetoothイヤホン、スピーカーがSBCに対応しています。
BitPool値とは、SBCのデータ転送量を調整する値のことで、SBCの音質を決める重要な数値です。現在販売されている多くのBluetoothイヤホン、スピーカーが最高のBitPool 53(328kbps)に対応しています。
一昔前の製品では技術的な問題でBitPool値が低く設定されていた為、SBCは音質が悪いという評価でしたが、BitPool 53で接続したものは、他のコーデック(AACとかaptX)に比べて大きく音質が劣ると感じることはないと言われています。(もちろん個人差はありますが)
Android端末では通常BitPool値は確認できないので、これを確認する方法を紹介します。
手順の流れは前回のコーデックを確認する方法と同じような感じです。
- Android端末のBluetooth機能をオフにしてBluetoothイヤホン、スピーカーのペアリングを解除
- 開発者向けオプションの「Bluetooth HCI snoopログを有効にする」をONにする
- Android端末とBluetoothイヤホン、スピーカーをペアリングして適当な音楽を再生する
- ログファイルbtsnoop_hci.logをPCにコピーしてWiresharkで解析する
という流れになります。
Android端末でSBCのBitpool値を確認する方法
まずはスマホのBluetooth機能をオフにしてBluetoothイヤホン、スピーカーのペアリングを解除しておきます。
次にAndroid端末の開発者向けオプションから「Bluetooth HCI snoopログを有効にする」をONにします。
Android端末とBluetoothイヤホンまたはスピーカーをペアリングして適当な音楽を再生します。20秒ほど再生したら停止し、「Bluetooth HCI snoopログを有効にする」をOFFにします。
Android端末の内部ストレージのルートに「btsnoop_hci.log」というファイルが生成されているのでこれをPCにコピーします。
btsnoop_hci.logの保存場所は機種によって異なるようなので、もし見つからなければ次のコマンドを実行すると保存場所が表示されます。(ADB環境が必要です)
adb shell cat /etc/bluetooth/bt_stack.conf
Android 8.0以降ではbtsnoop_hci.logの取り出し方法が異なるようなのでこちらを参考にしてください。
WiresharkでBluetoothのログを解析
ログファイルであるbtsnoop_hci.logを解析する為には「Wireshark」というソフトが必要です。公式サイトからダウンロード、インストールします。インストールの設定はすべてデフォルト(NEXTボタン連打)でOK。
インストールが完了したら、btsnoop_hci.logをWiresharkで開き、表示フィルタに「sbc」と入力してエンターキーを押します。
SBCに関する通信ログのみが表示されるので、中段の「Bluetooth SBC Codec」を開いていくとBitpool値が確認できます。
ちなみに上のログは、3COINS 1000円BluetoothスピーカーとQua Phone PX LGV33を接続したときのものです。BitPool 53で接続されていることが確認できます。