PulseAudioのA2DP-ひどい途切れ/スキップオーディオ


12

BluetoothヘッドセットとUbuntu 12.04ラップトップをBluetoothチップを内蔵したペアリングしました。

lsusb | grep Bluetooth

Bus 003 Device 003: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth

デバイスはペアリングされており、を使用しbluemanて、シンクとしてPulseAudioに接続しました。オーディオはA2DPモードで出くわしますが、ひどく途切れがちであり、何もないよりはるかに優れているというわけではありません。

私は周りを読んniceで、PulseAudioサーバーの優先順位を調整することを含む修正があったことを見ました。デフォルトでは、PulseAudioはユーザーごとに実行されるため、次のコードをmyに追加しました/etc/security/limits.conf

*       hard    rtpio   0
*       soft    rtpio   0
@audio  hard    rtpio   20
@audio  soft    rtpio   20
pulse   hard    rtpio   20
pulse   soft    rtpio   20

次に、自分をaudioグループに追加して、pulseaudioプロセスの優先順位をスケジュールできるようにしました。pulseaudio現在、優先度で実行されているようです-11

ps -eo pri、ni、cmd | grep [p] ulse

30 -11 /usr/bin/pulseaudio --start --log-target=syslog

これは、PulseAudioが-11の優先度で実行されていることを意味するはずです。

しかし、再起動した後でも、ひどい途切れ途切れのオーディオがまだ聞こえます。

どうすればいいですか?私が購入したこのBluetoothヘッドセットを使用可能にしようとしています。

注:このデバイスをラップトップのすぐ隣にあるAndroidタブレットとペアリングしてみましたが、問題なく動作するため、ワイヤレスの輻輳ではなく、何らかの形でLinuxと直接相関しているようです。

回答:


20

ALSA構成ファイルを編集する

sudo gedit /etc/modprobe.d/alsa-base.conf

行を追加

options snd-hda-intel model=generic

ファイルの最後に移動し、再起動します。


1
これは私のBOSEの静かな快適さ35 IIスピーカー(ubuntu 18.04)のために素晴らしく機能しました
Victor Parmar

この簡単な修正は、多くの検索を行った後もうまくいきました。Ubuntu 18.10、bluetoothイヤホン(プロモートtrueBlue)。
Francesco Napolitano、

これで私の問題も解決したことを説明するアカウントを作成しました(QC35II)。説明が役に立ちます。いずれにせよ、あなたは命の恩人です
Sam

Debian 9テスト、カーネル4.18.20-2のQC35IIでこの修正を行うと、チョップネスが約95%少なくなります。
Andrey Portnoy

3
最後に、このファイルを編集した後、あなただけの実行、再起動する必要はありませんsudo service bluetooth restart
Dinuka Salwathura

11

私のシステム(2012 MacBook AirのUbuntu 18.04 LTS)で他の回答が機能しなかったため、ドイツのubuntuusers wikiで解決策を見つけました。ドイツ語の説明の英語の要約:

途切れ途切れの出力は、A2DPの実装と、エンコードする前にサウンドをバッファリングする方法が原因である可能性があります。私にとって、このバッファのサイズを変更すると、音が途切れる問題が解決しました。次の3つのステップを実行する必要があります。

  1. Bluetoothデバイスに関する必要な情報を検索します(接続中!)

    pactl list | grep -Pzo '.*bluez_card(.*\n)*'
    

    出力は次のようになります

    Name: bluez_card.28_11_A5_84_B6_F9
    Driver: module-bluez5-device.c
    ...
    Ports:
    speaker-output: Speaker (priority: 0, latency offset: 0 usec, available)
        Part of profile(s): a2dp_sink, headset_head_unit
    speaker-input: Bluetooth Input (priority: 0, latency offset: 0 usec, not available)
        Part of profile(s): headset_head_unit
    

    バッファのレイテンシは現在0であることがわかります。次のステップでは、出力のNAMEand が必要になりPORTます。この例では、これらは、bluez_card.28_11_A5_84_B6_F9speaker-outputそれぞれ。

  2. 次のコマンドパターンを使用して、カードのバッファサイズ(レイテンシ)を適切な値に設定します。

    pactl set-port-latency-offset <NAME> <PORT> <BUFFER_SIZE_MICROSECONDS> 
    

    次のコマンドのレイテンシの単位はマイクロ秒なので、ここではコマンドに50ミリ秒のバッファーを使用しています。

    pactl set-port-latency-offset bluez_card.28_11_A5_84_B6_F9 speaker-output 50000 
    
  3. 変更を適用するには、Bluetoothサービスを再起動してください

    sudo service bluetooth restart
    

通常、これに関するドキュメントはないため、バッファ値を高くしたり低くしたりする必要があるかもしれません。


1
あなたはより多くの賛成票に値します!45000はMacbook Air(2014年初頭)とボーズQC35
Ole Aldric

これは正しいです、ありがとう
jhtong

3

修正はうまくいきましたが、その前にREMを実行する必要があることがわかりました。下記参照:

# Keep snd-usb-audio from beeing loaded as first soundcard  
# options snd-usb-audio index=-2  <-REM this line if it doesn't work at first  
options snd-hda-intel model=generic

2

Chris_128の回答でうまくいきましたが、初心者には少し詳しく説明します。

以下のコマンドのNAMEおよびPORTの場合:

pactl set-port-latency-offset NAME PORT 50000 

次のように入力した結果が得られたら、それを取得します。

pactl list | grep -Pzo '.*bluez_card(.*\n)*'


Name: bluez_card.5C_FB_7C_0D_0F_EE
Driver: module-bluez5-device.c
Owner Module: 28
Properties:
    ...
Profiles:
    headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
    a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 40, available: yes)
    off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: a2dp_sink
Ports:
    headset-output: Headset (priority: 0, latency offset: 0 usec, available)
        Part of profile(s): headset_head_unit, a2dp_sink
    headset-input: Headset (priority: 0, latency offset: 0 usec)
        Part of profile(s): headset_head_unit

NAMEは "bluez_card.5C_FB_7C_0D_0F_EE"になり、PORTは "headset-output"になります

だから私の場合、私のコマンドは

"pactl set-port-latency-offset bluez_card.5C_FB_7C_0D_0F_EE headset-output 50000"

Bluetoothサービスを再起動します

sudo service bluetooth restart

1

MacBook Miniでデュアルブートとして実行されているUbuntu 18.04でも同じ問題がありました。@ConfirmAndCreateThisAccountで言及されているように、ALSA構成を変更しようとしました。

しかし、それはうまくいきませんでした。

だから私は以下のコマンドを使用してBluemanをインストールしました

sudo apt-get install blueman

次に、BluetoothデバイスをシステムのBluetooth設定から切断し、Bluemanを使用して再ペアリングしました。今、すべてが大丈夫です。Play / Pauseコントロールでも機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.