我想通过使用c/C++脚本从共同的触发信号同步两台不同计算机上的音频回放和录制。预计的延迟不应超过1毫秒。在不同的计算机上同步回放和录制
检索信号然后启动脚本并不是真正的问题,延迟非常微不足道(几微秒)。目前,我被困在平均延迟(播放开始和记录开始之间)约20ms,偏差非常重要(5到10ms)。 计算机正在Linux上运行,我正在使用aplay和arecord from alsa-utils(直接从使用system()命令的代码开始)。
有人有一个好主意或经验来减少或控制两个音频接口之间的延迟吗?
在我看来,应该有一种方法来初始化接口(速率,输出格式等),并且对于回放设备,将数据预加载到音频缓冲器中,然后在接收到信号时开始播放。
谢谢
音频同步是一件棘手的事情。可能你应该看看JACK,而不是直接搞乱alsa API。您绝对可以制作单个JACK输出,这将在多台电脑上同步输出音频。 –