实时室内流媒体和音乐混合
Real Time indoor streaming and music mixing
我正在做这个项目,我们正在做一场现场表演,大约有 6 位音乐家在一个大 space 中彼此分开。观众将戴着耳机,当他们四处走动时,我们希望他们听到不同区域的不同效果。为了计算用户的位置,我们使用蓝牙信标。我们预计大约有 100 个用户,并且延迟不能超过 2 秒。
这样的设置可能吗?
目前我们正在考虑的实施方式是,我们将把这个地方分成大约 30 个不同的部分。
对于服务器,我们将从所有音乐家那里获取输入,并为每个部分混合不同的流,并使用 RTP 协议将其流式传输到本地 WLAN。
我们将有 Android 和 iOS 应用程序,它们将使用蓝牙信标定位用户并相应地切换实时流。
Presonus Studio One 音乐混音器 - 可以有多个通道可以输出到设备。 30 个频道。
虚拟音频线 - 用于创建将从通道获取输出的虚拟设备。 30 台设备。
FFMpeg streaming - 用于为每个设备创建 RTP 流。 30 个流。
这是一个好主意吗?还有其他方法吗?
任何帮助将不胜感激。
音频采集和混音
首先,您需要将这六个音频通道捕捉到您可以使用的东西中。我不认为你的虚拟音频电缆的想法是可持续的。以我的经验,一旦你获得了很多,它们就不会那么好用了。你需要能够从你的混音器直接转到正在对流进行编码的东西,这意味着你需要像 JACK audio.
这样的东西
有两种方法可以做到这一点。一种是使用数字混音器为您创建这 30 个混音,然后将生成的流发送给您。另一种是简单地捕获 6 个音频通道,然后在软件中进行混合。通常我认为外部混音的灵活性是您想要的,通常我会为您推荐 Behringer X32 系列。我自己还没有用 JACK audio 试过,但我听说它可以工作,而且价格也不错。您可以以便宜的价格获得它的机架安装包,它具有所有功能而无需控制表面(更便宜,并且足以满足您的需求)。 但是,X32 只有 16 条总线,因此您需要其中两条总线才能获得所需的混音数量。 (您可以通过矩阵混音发挥创意,但这只会让您多 6 个,总共 22 个。)
我认为您需要做的是捕获该音频并在软件中混音。您可能希望为此使用 Liquidsoap。它可以以编程方式混合通过 JACK 拉入的音频流,并在输出端创建互联网广播风格的流。
流媒体
您将需要一台服务器。有很多 RTP/RTSP 服务器可用,但我推荐 Icecast。设置起来会更容易,客户端也更兼容。 (例如,无需制作应用程序,您可以轻松地在网页上的 HTML5 音频标签中播放这些流。)Liquidsoap 可以将流直接发送到 Icecast。
延迟
将延迟保持在 2 秒以内将是一个问题。你会想要尽可能地降低缓冲区,尤其是在你的 Icecast 服务器上。这处于合理可能的边缘,因此您需要进行测试以确保延迟满足您的要求。
网络
同一频谱上的 100 个客户端也存在问题。您需要什么取决于您的 space 的具体情况,但您正好可以通过使用常规消费者接入点获得什么。考虑到您的延迟和带宽要求,我建议获得一些 commercial access points with built-in sector antennas and multiple radios。这种齿轮的制造商很多。
祝这个独特的项目好运!请 post 完成设置后的一些照片。
我正在做这个项目,我们正在做一场现场表演,大约有 6 位音乐家在一个大 space 中彼此分开。观众将戴着耳机,当他们四处走动时,我们希望他们听到不同区域的不同效果。为了计算用户的位置,我们使用蓝牙信标。我们预计大约有 100 个用户,并且延迟不能超过 2 秒。
这样的设置可能吗?
目前我们正在考虑的实施方式是,我们将把这个地方分成大约 30 个不同的部分。
对于服务器,我们将从所有音乐家那里获取输入,并为每个部分混合不同的流,并使用 RTP 协议将其流式传输到本地 WLAN。
我们将有 Android 和 iOS 应用程序,它们将使用蓝牙信标定位用户并相应地切换实时流。
Presonus Studio One 音乐混音器 - 可以有多个通道可以输出到设备。 30 个频道。
虚拟音频线 - 用于创建将从通道获取输出的虚拟设备。 30 台设备。
FFMpeg streaming - 用于为每个设备创建 RTP 流。 30 个流。
这是一个好主意吗?还有其他方法吗?
任何帮助将不胜感激。
音频采集和混音
首先,您需要将这六个音频通道捕捉到您可以使用的东西中。我不认为你的虚拟音频电缆的想法是可持续的。以我的经验,一旦你获得了很多,它们就不会那么好用了。你需要能够从你的混音器直接转到正在对流进行编码的东西,这意味着你需要像 JACK audio.
这样的东西有两种方法可以做到这一点。一种是使用数字混音器为您创建这 30 个混音,然后将生成的流发送给您。另一种是简单地捕获 6 个音频通道,然后在软件中进行混合。通常我认为外部混音的灵活性是您想要的,通常我会为您推荐 Behringer X32 系列。我自己还没有用 JACK audio 试过,但我听说它可以工作,而且价格也不错。您可以以便宜的价格获得它的机架安装包,它具有所有功能而无需控制表面(更便宜,并且足以满足您的需求)。 但是,X32 只有 16 条总线,因此您需要其中两条总线才能获得所需的混音数量。 (您可以通过矩阵混音发挥创意,但这只会让您多 6 个,总共 22 个。)
我认为您需要做的是捕获该音频并在软件中混音。您可能希望为此使用 Liquidsoap。它可以以编程方式混合通过 JACK 拉入的音频流,并在输出端创建互联网广播风格的流。
流媒体
您将需要一台服务器。有很多 RTP/RTSP 服务器可用,但我推荐 Icecast。设置起来会更容易,客户端也更兼容。 (例如,无需制作应用程序,您可以轻松地在网页上的 HTML5 音频标签中播放这些流。)Liquidsoap 可以将流直接发送到 Icecast。
延迟
将延迟保持在 2 秒以内将是一个问题。你会想要尽可能地降低缓冲区,尤其是在你的 Icecast 服务器上。这处于合理可能的边缘,因此您需要进行测试以确保延迟满足您的要求。
网络
同一频谱上的 100 个客户端也存在问题。您需要什么取决于您的 space 的具体情况,但您正好可以通过使用常规消费者接入点获得什么。考虑到您的延迟和带宽要求,我建议获得一些 commercial access points with built-in sector antennas and multiple radios。这种齿轮的制造商很多。
祝这个独特的项目好运!请 post 完成设置后的一些照片。