当我将两个 Google Nest Audio 设置为一对立体声 wifi 扬声器时,无论我如何连接到它们,无论是通过 Chromecast 还是蓝牙,它们都有大约 1 秒的延迟,因此视频不是口型同步的,几乎不可能观看。有什么可以做的吗?
自从使用不同的技术发布以来,我尝试了数周的演讲者,并联系了 Avantree 和 Google 支持,我正在写这篇问答。Avantree 表示 Nest Audio 仅支持蓝牙 SBC 编解码器,不支持 Aptx Low Latency 或 Faststream。谷歌支持刚刚确认这是真的,他们只推荐使用其他谷歌家庭设备。然而,他们也表示这是一个好主意,值得提出功能请求,但根据地区的不同,某些功能可能不可用。我说我有一个可行的解决方法,他们说他们也在论坛中找到了一些条目,但似乎没有一个有效……这就是我写这个问答的方式,希望可以轻松找到好的内容。:-)
PulseAudio 中的解决方法
如果您直接通过蓝牙连接到您的 Nest Audio 对,您可以在命令行上
set-port-latency-offset
为特定卡设置 PulseAudio 延迟(以微秒为单位)。1 秒 = 1000000 微秒。不要混淆,是的,PulseAudio 像处理另一个声卡一样处理连接的蓝牙扬声器,它只会将此新设置应用于此设备。因此,当您使用耳机时(无论是否有线),默认情况下都不会应用延迟,否则您也必须为此连接配置延迟。可能有一个 GUI 选项,但我更喜欢 bash_history 中的文本和命令。说到 Bash,PulseAudio 有 bash 完成或命令完成。只需使用该tab键保存输入并查看哪些选项可用以及您输入的内容是否正确。
您需要替换
xx_xx_xx_xx_xx_xx
为您的蓝牙扬声器的地址。别担心,如果它已经连接,命令完成会显示给你。如果没有:试试这个。您是否有一个USB 发射器,它在您的计算机上看起来像一个声卡,但向您的扬声器发送蓝牙音频?然后使用这个:
usb-0a12_Avantree_DG80-00
是我的发射器,Avantree DG80。如果你的是不同的——它也应该很好用——你需要更换它。再次命令完成是你的朋友!变通办法的含义,它是如何工作的,什么不是
我不是 PulseAudio 开发人员,也不是开发人员邮件列表上的常客,所以我将尝试简单地解释它……而且不准确。
PulseAudio 将尝试播放音频,使其与视频播放器和 Web 浏览器等应用程序中的视频播放相匹配。来自其他应用程序或桌面的声音将具有与以前相同的延迟,并且任何需要低延迟和实时通信的东西仍然难以使用,但非口型同步视频的明显问题得到了补偿。当您考虑 PulseAudio 和其他应用程序必须在较低级别上处理的内容时,这并不是一件容易的事,而且会让您头晕目眩。
我可以用 Firefox 很好地观看 mpv 和 Youtube 上的视频。但我注意到 Youtube 视频广告中的尴尬行为。
连接会不时中断或有更大的延迟。这种情况不会经常发生,但是当它重新连接扬声器时会有所帮助,即使它们似乎已正确连接,并且在某些情况下会关闭并再次打开扬声器(我有智能插座)。重新启动您的 Wifi AP 或路由器也可能会有所帮助。
对于蓝牙连接,我使用的是pylover 脚本的修改版本,由于没有时间更熟悉 Python,我尚未发布该脚本。但是我可以在命令行上输入和制表几个字母(感谢别名和我的版本的参数化),并观察我的设备几乎自动连接,而无需在菜单上花费太多时间。
祝你好运。