我想将同步媒体流式传输到多个设备(也称为多房间音频),类似于 Sonos 或 AirPlay。我认为使用 RTP 多播很容易做到这一点,因为您只需要使用 VLC(或 GStreamer/ffmpeg/etc. 服务器)设置一个所有客户端都可以连接的多播流。这似乎在以太网上运行良好,但在 WiFi 上会导致问题(显然是由于大多数路由器上多播数据包的带宽分配较低)。
描述了同步 VLC 流设置 here是一个很好的解决方案,但仅适用于早期版本的 VLC (0.8.6b)。
通过 WiFi 同步媒体流还有其他选择吗?
最佳答案
几个月后,我终于有了自己问题的答案。
最好的解决方案似乎是使用 Logitech Media Server(又名 SqueezeCenter)作为流媒体服务器和 Logitech Squeezeboxes (硬件解决方案)和/或 SqueezePlay(Mac/Win/Linux 的软件解决方案)用于媒体播放。 SqueezePlay 和媒体服务器是免费的,一个 Squeezebox 大约是 140 欧元/180 美元。您还可以将 Android/iOS 上的 Squeezebox 应用程序用作 Controller 。
我测试过synchronization在两个 Squeezebox 和一个连接到媒体服务器 (Linux) 的 SqueezePlay 实例 (Mac) 之间,它可以正常工作。流式传输协议(protocol)以及如何执行同步解释 here .
如果您想以编程方式控制设备,可以使用 Logitech SqueezeCenter Telnet CLI(参见帮助 > 技术信息 > Logitech Media Server 上的命令行界面),以及 Python wrapper对于 CLI。
关于synchronization - 通过 WiFi 将同步媒体流式传输到多个设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474519/