我正在开发一个应用程序,为设备提供多房间音频,并成功保持使用GST同步并使用NTP同步的文件(例如mp3)播放音频,但我似乎无法获得现场音频流同步。
基本上我希望能够将音频从一个设备流式传输到一个或多个其他设备,而不是它们缓冲并且不同步我希望它们大约在同一时间播放(足够接近任何延迟而不是无论如何都要注意到。)
有没有人就如何实现这一点提出任何建议,或者可以提供任何讨论此事的材料? (搜索没有多少出现)
值得注意的是,此应用程序将使用Python进行编码。
答案 0 :(得分:1)
不幸的是,对于大多数人来说,延迟低至10毫秒是显而易见的。音乐家倾向于欣赏比这更低的延迟。如果你有来自不同设备的任何扬声器在彼此的听觉范围内,即使在最轻微的不可预测的延迟(这在计算机上是不可避免的),你也会遇到相位问题。
基本上,不可能有一个不明显的延迟。即使您确实成功地同步了开始时间,每个设备上都有不同的采样时钟,并且它们会随着时间的推移而分开。一台设备的44.1kHz可能是另一台44.103kHz。
如果你对同步有更现实的期望......大约50-100ms,那么这就变得更加可行了。我将有一个主设备进行解码,然后将PCM样本发送到其他设备进行播放。跟踪您的音频设备缓冲区并确保它们不会变得太大(表明您的设备落后)或欠载(表示网络问题或您的设备未来)。让所有设备具有相同的缓冲区大小,甚至可以使用广播数据包发送音频,因为无论如何所有设备都在同一网络上。
答案 1 :(得分:0)
很抱歉提出一个旧问题,但这是我正在研究的问题。我相信你需要看一下实时流协议(RTSP)是一种网络控制协议,设计用于娱乐和通信系统来控制流媒体服务器。该协议用于建立和控制端点之间的媒体会话。 这是保持事物同步的更好方法。至于将其发送到查看多播地址的多个设备。 希望这有帮助