使用A2DP通过蓝牙播放音频时,可以消除0.5秒的延迟
如标题中所述,当使用A2DP通过蓝牙播放音频时,我会遇到半秒钟的延迟。
由于声音与video不同步,因此无法观看电影。
我不确定延迟是由蓝牙标准,A2PD协议,Ubuntu 12.04上的A2DP实现还是Belkin Z73蓝牙接收器引起的。
无论如何,这是一个正常的滞后? 有没有办法通过蓝牙播放音频而没有任何明显的延迟?
不,这不正常,但偶尔我的Altec Lansing iMT525蓝牙音箱有类似的问题。 与Sri的答案相似的概念几乎总是对我有用,我需要每次连接只做一次。
自动切换蓝牙配置文件以重新初始化PulseAudio
如果你正在寻找罪魁祸首,我先看看Ubuntu的音响系统,PulseAudio,然后是你的蓝牙接收器。 试试这个:
-
首先,删除并重新配对您的蓝牙设备。
-
然后,将以下内容复制并粘贴到主目录中的
.sh
文件中,例如/home/brillout/pabluezswitch.sh
:#!/斌/庆典
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 -
通过打开终端并输入
chmod +x ~/pabluezswitch.sh
使文件可执行 -
转到设置…键盘…快捷方式 ,然后创建自定义快捷方式; 使用
/home/brillout/pabluezswitch.sh
命令(在路径中替换相应的用户名!),将其命名为您想要的任何名称。 单击“ 应用” ,然后单击右侧的“ 禁用”以设置键盘快捷方式以执行脚本。
这样做是迫使PulseAudio系统通过从ad2p -> hsp -> a2dp
切换配置文件来重新同步发送到耳机/扬声器的音频,因此希望摆脱任何延迟。
每当您连接并注意滞后时,您应该按下上面选择的键盘快捷键以尝试修复延迟 – 希望它适合您!
在pavucontrol
我转到输出设备选项卡,然后选择蓝牙设备下方的advanced
选项。 在那里,您可以将延迟偏移设置为600毫秒。 问题解决了。
无论玩家使用什么,偶尔也会遇到类似的问题。 我的是诺基亚BH-503蓝牙立体声耳机,带有MSI CR400笔记本电脑和Ubuntu 11.10。 我偶然遇到了一个可以尝试的解决方法。
- 开始video播放。
- 转到声音设置>硬件。
- 选择蓝牙设备。
- 然后在“所选设备的设置”下拉列表中,切换到电话双工(HSP / HFP)配置文件,然后切换回高保真播放(A2DP)。
自适应差分脉冲编码调制涉及一种先行型压缩算法,其中在编码器有机会检查即将到来的信息的几个字节之前不能发送信息。 因此,数据必须在编码器中堆叠,并且在进入和离开编码器的流之间存在固有的时间偏移。 很久以前,我对数据网络延迟进行了研究,以确定数据语音电话的可行性(现在的VoIP是什么)。 我想我得出结论,ADPCM风格的压缩/编码会引入太多延迟。 我认为要克服这种蓝牙延迟问题,可能需要一种非压缩类型的音频编码,它应具有较低的延迟。
这里的热门回复有效,但不适用于所有蓝牙音频设备。 有些设备的配置文件名称与海报与蓝牙音箱的名称不同。 例如,在以下由该人最初发布的代码中,它显然具有名为a2dp
和hsp
配置文件。 例如,这些都不适用于我的LG Tones,但它们与我的索尼耳机等其他设备一样。
#!/bin/bash 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
该代码适用于它出现的大多数蓝牙设备,但为了使这些设备能够正常运行那些没有a2dp配置文件或hsp配置文件的设备,请键入:
pactl list | grep -Pzo '.*bluez_card(.*\n)*'
这将在找到蓝牙设备后返回所有内容。 例如,使用LG Tone Ultra耳机,我得到了这个:
Name: bluez_card.B8_AD_3E_**_**_** Driver: module-bluez5-device.c Owner Module: 36 Properties: device.description = "LG HBS810" device.string = "B8:AD:3E:**:**:**" device.api = "bluez" device.class = "sound" device.bus = "bluetooth" device.form_factor = "headset" bluez.path = "/org/bluez/hci0/dev_B8_AD_3E_**_**_**" bluez.class = "0x240404" bluez.alias = "LG HBS810" device.icon_name = "audio-headset-bluetooth" device.intended_roles = "phone" Profiles: a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 10, available: yes) headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 20, 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) Part of profile(s): a2dp_sink, headset_head_unit headset-input: Headset (priority: 0, latency offset: 0 usec) Part of profile(s): headset_head_unit
我们对profiles
部分感兴趣。 在本节中,我们看到三个配置文件,分别是a2dp_sink
, headset_head_unit
和off
。 我们需要的两个配置文件应包含在其中(A2DP Sink)和(HSP / HFP)。 在这种情况下,它们是a2dp_sink
配置文件的headsethead_unit
,以及hsp配置文件的headsethead_unit
。 请注意,这与原始海报的a2dp
和hsp
。
现在,使用上面的代码,我们将修改它并将其放入文件中。 我把文件称为bluezswitch.sh
。
切换到要放置文件的目录。 它可以在任何地方。
touch bluezswitch.sh
然后
nano bluezswitch.sh
将代码复制并粘贴到此注释的最顶部,并将a2dp
和hsp
替换为运行上述命令时获得的值,并将其粘贴到该文件中。 例如,这就是我的LG Tones的文件。
#!/bin/bash BLUEZCARD=`pactl list cards short | egrep -o bluez.*[[:space:]]` pactl set-card-profile $BLUEZCARD a2dp_sink pactl set-card-profile $BLUEZCARD headset_head_unit pactl set-card-profile $BLUEZCARD a2dp_sink
现在, ctrl-x
然后y
保存文件并退出nano,然后使文件可执行:
chmod +x bluezswitch.sh
然后按照说明设置键盘快捷键进行跟进。
转到设置…键盘…快捷方式,然后创建自定义快捷方式; 使用/home/brillout/bluezswitch.sh命令(在路径中替换相应的用户名!),将其命名为您想要的任何名称。 单击“应用”,然后单击右侧的“禁用”以设置键盘快捷方式以执行脚本。
应该就是它的全部内容。 这适用于所有以前不起作用的人。
我尝试了很多解决这个问题的方法,但没有什么能解决它。 然后我偶然发现了set-port-latency-offset
如果你使用的是pulseaudio:
pactl list cards short | egrep -o bluez.*[[:space:]]
这将为您提供蓝牙接口。 现在相应地设置延迟:
pactl set-port-latency-offset speaker-output 100000
我使用100000微秒,对我来说很好。
以下是为我解决的问题: $ sudo apt-get install phonon-backend-vlc
并确保它是首选的后端,在KDE中转到[系统设置] [多媒体] [音频和video设置] [后端]并使用[首选按钮]
遇到此问题的个人请访问以下网站: http : //projectzeorymer.wordpress.com/2011/09/01/ubuntu-how-to-connect-nokia-bh-503-bluetooth-headset-to-your-pc /看到你需要下载的图片。
下载蓝牙管理器并使用它来操纵耳机的设置。 将声音设置设置为高保真播放(A2DP),然后进入声音设置。
在VLC媒体播放器上,转到“工具”轨道同步“同步”选项卡在音频/video音频轨道同步下,使用大约-0.67的负值,并且将完全补偿延迟。 每次打开新文件时都必须手动执行此操作。 克里斯