PulseAudio의 A2DP-끔찍한 고르지 / 스킵 오디오


13

Bluetooth 헤드셋이 내장 된 Bluetooth 헤드셋을 Ubuntu 12.04 랩톱과 페어링했습니다.

lsusb | grep 블루투스

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

장치가 페어링되었으며의 도움으로 blueman싱크로 PulseAudio에 연결했습니다. 오디오는 A2DP 모드에서 발생하지만 굉장히 고르지 않으며 아무 것도없는 수준으로 건너 뜁니다.

나는 주위를 읽고 nicePulseAudio 서버 의 우선 순위 조정과 관련된 수정이 있음을 알았습니다 . 기본적으로 PulseAudio는 사용자별로 실행되므로 다음을 추가했습니다 /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로 실행 중임을 의미합니다.

그러나 다시 시작한 후에도 여전히 끔찍한 고르지 않은 오디오가 나타납니다.

어떻게 진행해야합니까? 구입 한이 블루투스 헤드셋을 사용할 수있게 만들려고합니다.

참고 :이 장치를 랩톱 옆의 Android 태블릿과 페어링하려고 시도했지만 정상적으로 작동하므로 무선 혼잡이 아니므로 Linux와 직접 관련이있는 것으로 보입니다.

답변:


20

ALSA 구성 파일 편집

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

라인 추가

options snd-hda-intel model=generic

파일 끝까지 재부팅하고 재부팅하십시오.


1
이것은 BOSE의 조용한 편안함 35 II 스피커 (우분투 18.04)를 위해 훌륭하게 작동했습니다
Victor Parmar

이 간단한 수정은 많은 검색 후 나에게 효과적이었습니다. 우분투 18.10, 블루투스 이어폰 (trueBlue 프로파일).
프란체스코 나폴리 타노

이것이 내 문제도 해결했다고 언급하는 계정을 만들었습니다 (QC35II). 설명이 도움이 될 것입니다. 그러나 어느 쪽이든, 당신은 생명의 은인입니다
Sam

데비안 9 테스트, 커널 4.18.20-2에서 QC35II를 사용하면이 수정으로 만족도가 약 95 % 줄어 듭니다.
Andrey Portnoy

3
이 파일을 편집 한 후 마지막에 다시 시작할 필요가 없습니다.sudo service bluetooth restart
Dinuka Salwathura

12

다른 답변이 내 시스템 (2012 MacBook Air의 Ubuntu 18.04 LTS)에서 작동하지 않았 으므로 독일어 우분투 사용자 위키 에서 내 솔루션을 찾았습니다 . 독일어 지침의 영어 요약 :

고르지 못한 출력은 A2DP 구현 및 인코딩 전에 사운드를 버퍼링하는 방법으로 인해 발생할 수 있습니다. 저 에게이 버퍼의 크기를 변경하면 고르지 않은 사운드 문제가 해결되었습니다. 세 단계를 수행해야합니다.

  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입니다. 다음 단계에서는 필요 NAME하고 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. 변경 사항을 적용하려면 블루투스 서비스를 다시 시작하십시오.

    sudo service bluetooth restart
    

일반적으로 이에 대한 문서가 없으므로 더 높거나 낮은 버퍼 값을 실험해야 할 수도 있습니다.


1
당신은 더 많은 투표를받을 자격이 있습니다! 45000이 Macbook Air (2014 년 초) 및 Bose 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

3

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는 "헤드셋 출력"입니다.

제 경우에는 제 명령은

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

블루투스 서비스를 다시 시작하십시오

sudo service bluetooth restart

1

MacBook Mini에서 듀얼 부팅으로 실행되는 Ubuntu 18.04와 동일한 문제가 있습니다. @ConfirmAndCreateThisAccount에서 언급 한대로 ALSA 구성을 변경하려고했습니다.

그러나 작동하지 않았습니다.

그래서 아래 명령을 사용하여 Blueman을 설치했습니다.

sudo apt-get install blueman

그런 다음 시스템 블루투스 설정에서 블루투스 장치를 분리하고 Blueman을 사용하여 다시 페어링했습니다. 이제 모든 것이 정상입니다. 재생 / 일시 정지 컨트롤조차도 작동합니다.


0

"Pulse"또는 "Volume"에서 검색 막대 (통합 CTRL-D, 그놈의 Windows 키) 유형을 열 수 있습니다. GUI 도구 "Pulseaudio Volume Control"을여십시오. 아이콘은 노브 또는 게이지 모양입니다.

거기에서 블루투스 스피커를 선택할 수 있습니다. 고급을 클릭하고 다른 답변에서 제안한대로 지연 시간 값을 설정하십시오. 45ms 또는 50ms가 그들에게 효과가있는 것 같지만, 나에게 맞는 좋은 가치를 찾지 못했습니다.

스크린 샷이 첨부되어 있습니다. 내 Bluetooth 스피커를 SRS-BTX300이라고합니다. 대기 시간 값을 변경 한 후 블루투스를 다시 시작할 필요는 없습니다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.