Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

As described in the title I experience a half a second delay when playing audio over Bluetooth with A2DP.
This makes watching movies not possible as the sound is not synchronised with the video.

I'm not sure if the delay is caused by the Bluetooth standard, the A2PD protocol, the A2DP implementation on Ubuntu 12.04, or the Belkin Z73 Bluetooth Receiver.

Anyways, is this a normal lag? Is there a way to play audio over Bluetooth without any noticeable latency?

share|improve this question
Not a real solution to your problem but a workaround: If it's only about playing movies, you can adjust the audio/video offset, which will delay the video too. Using mplayer, you do so by pressing the + and - keys. In VLC, I don't know how to set the delay, but I'd be surprised if VLC doesn't have such an option. – leemes Jun 3 '12 at 14:29
I thought about that but I'm missing a solution for YouTube. When the video is played with HTML5 a solution could be to install a browser extension that sets a video offset. But for the case the video is played with flash I'm not sure how to achieve that. – Jun 3 '12 at 14:33
Incidentally, the VLC option is at Tools->Track Synchronisation, or play with the --audio-desync option. I'm afraid I'm not sure what the units are, and which direction is positive, and the help is not forthcoming on the matter, but that's where you want to look. – Darael Jul 31 '12 at 19:32
Have you found a permanent solution to this problem? I am currently using the solution to switch between the A2DP / HSP / A2DP, but it's not practical to stay doing that every time the sync problem. – Fred Wuerges Jul 18 at 22:54
up vote 18 down vote

No, this is not normal but I've had a similar problem occasionally with my Altec Lansing iMT525 Bluetooth Speakers. Something similar in concept to Sri's answer almost always works for me, and I need to do it only once per connect.

Auto-switching Bluetooth profiles to re-initialize PulseAudio

If you're looking for a culprit, I'd look at Ubuntu's sound system, PulseAudio first, and then your bluetooth receiver. Try this:

  • First, delete and re-pair your Bluetooth device.

  • Then, copy and paste the below into a .sh file in your home directory, say /home/brillout/

    BLUEZCARD=`pactl list cards short | egrep -o bluez.*[[:space:]]` pactl set-card-profile $BLUEZCARD a2dp pactl set-card-profile $BLUEZCARD hsp pactl set-card-profile $BLUEZCARD a2dp
  • Make the file executable by opening a terminal and typing chmod +x ~/

  • Go to Settings...Keyboard...Shortcuts, and create a custom shortcut; name it whatever you want, with the command as /home/brillout/ (substitute appropriate username in path!). Click Apply, and then click on the right where it says Disabled to set up a keyboard shortcut to execute the script.

What this does is force the PulseAudio system to resynchronize the audio being sent to your headset/speakers by switching profiles from ad2p -> hsp -> a2dp, thus hopefully getting rid of any latency.

Whenever you connect and notice the lag, you should press the keyboard shortcut chosen above to attempt to fix the latency -- hopefully it works for you!

share|improve this answer
I've been using this for a couple days now, and it works great. -- 14.04 – dpb Oct 29 '14 at 14:37
Great answer and perfectly convenient too! Great job! – Zzzach... Dec 14 '14 at 21:30
Brilliant. Thanks a lot! – Gui Ambros May 28 at 15:05
Note that pactl has terrible error messages, and that many audio equipment don't have these ad2p and hsp. My Bose only has ad2p_sink, not these other two. – odinho - Velmont Jun 12 at 10:10

I get similar problem occasionally, irrespective of the player used. Mine is a Nokia BH-503 Bluetooth Stereo Headphone with MSI CR400 laptop and Ubuntu 11.10. I happened to come across a workaround which you can try.

  • Start the video playback.
  • Go to Sound Settings > Hardware.
  • Select the Bluetooth device.
  • Then in Settings for the Selected Device drop-down, switch to Telephony Duplex (HSP/HFP) profile, then switch back to High Fidelity Playback (A2DP).
share|improve this answer

Adaptive differential pulse code modulation involves a look-ahead type compressing algorithm where information cannot be transmitted before the encoder has had a chance to examine several bytes of forthcoming info. Hence, data has to stack up in the encoder, and there is an inherent time shift between the streams entering and leaving the encoder. Long ago, I did a study of data network delays to determine the feasibility of voice-over-data telephony (what is now VoIP). I think I concluded that ADPCM-style compression/encoding would introduce too much delay. I think to overcome this Bluetooth-delay problem, one might need a non-compressing type of audio encoding which should have lower latency.

share|improve this answer

Call me simple but on pavucontrol I go to the output device tab, then choose the advanced option. There I enter 600ms to latency. Problem solved. But that's just silly me.

share|improve this answer

Here's what solved it for me: $ sudo apt-get install phonon-backend-vlc and make sure it's the preferred backend, in KDE go to [System Settings][Multimedia][Audio and video settings][Backend] and use the [Prefer button]

share|improve this answer
@dargaud I recommend expanding this to explain how to make it the preferred backend. – Eliah Kagan Jul 24 '14 at 22:33

individuals who are having this problem Please view this website: to see a pic of what you need to download.

Download the bluetooth manager and use it to manipulate the settings of the headset. Set the sound settings to High Fidelity Playback (A2DP) and then go in sound settings.

share|improve this answer
Go on bluetooth manage and go to Audio Profile and then select High Fedelity Playback.. thats it – Alex Force Aug 18 '12 at 22:25

I tried a lot of approaches to this problem, but nothing could fix it. Then I stumbled upon set-port-latency-offset

If you are using pulseaudio do :

pactl list cards short | egrep -o bluez.*[[:space:]]

This will give you the bluetooth interface. Now set the latency accordingly :

pactl set-port-latency-offset <INTERFACE> speaker-output 100000

I am using 100000 microseconds which works fine for me.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.