是否可以在同一个挂载点有 2 个源?
例子:
源 1(来自 S1 IP 地址)将音乐发送到 IP Icecast2 服务器。源 2(来自 S2 IP 地址)向 Ip Icecast2 服务器发送语音。
监听器运行:mplayer ip_icecast2:8000/example.ogg..
收听者在发送时收听音乐和声音。
是否可以在同一个挂载点有 2 个源?
例子:
源 1(来自 S1 IP 地址)将音乐发送到 IP Icecast2 服务器。源 2(来自 S2 IP 地址)向 Ip Icecast2 服务器发送语音。
监听器运行:mplayer ip_icecast2:8000/example.ogg..
收听者在发送时收听音乐和声音。
Liquidsoap should be able to handle the mixing and setting the proper metadata.. The web site is at http://savonet.sourceforge.net/
是的,但不是单独使用 Icecast。
您需要做的是混合两个流。Icecast 没有任何功能可以做这样的事情。有很多方法可以做到这一点。我可能会考虑将流与 FFMPEG 混合在一起。您可以使用amerge
和amix
过滤器。
现在,您需要将 FFMPEG 的输出发送到您的 Icecast 服务器。通过一些脚本,您应该能够将 STDOUT 从 FFMPEG 通过管道传输到与 Icecast 的 TCP 连接。在发送数据之前,您需要发送适当的标头以及不发送的内容。
您实际上可以在没有其他任何东西的情况下做到这一点,您需要指定 3 个流
该技巧依赖于一个名为 fallback 的标签,您可以直接在 icecast xml 文件上对其进行配置,它会执行类似的操作 - 如果现场音频不可用,则回退到 autodj,其中任何一个都将直接在流上播放,优先考虑居住
我假设您的意思是来自不同 URL 的一种音频来源和一种说话来源。如果您不知道如何使用 Soap,您可以使用 SAM 广播器之类的第 3 方应用程序同时获取音频和音乐流。
这将解码流并像传统的音频混合器一样将它们混合,然后重新编码并作为一个流发送到单个 Icecast 服务器。
请记住,如果您正在进行配音,则需要处理延迟。即,在您将要讲话的音频部分之后,最终听众将听到讲话。这取决于所涉及的缓冲区长度,并且是因为 SAM 广播公司将在您所在的同一位置“收听”音频(假设您正在对源音频流讲话)。然后你需要添加,播放缓冲区 SAM 需要处理,播放你的语音流进行混合和传递。