首页 > 解决方案 > Icecast 流切换源而无需客户端停止播放

问题描述

早上好 :)

我有一些关于icecast-setup 的问题。我们有我自己的(Nextcloud)服务器坐在我们的教堂里。这工作得很好,因为在德国,在所有这些 Covid19 事件中,社区服务已经被禁止一次,我们希望有一个流设置。我设法在我们的服务器上设置了一个 icecast 实例,我们使用我的旧笔记本电脑和 Rocket Broadcaster 和一个 Steinberg CI2 来提供流的源。这一切都按预期工作。我们已经使用过一次,因为我们的一名成员出国一周后检测呈阳性后,我们停止了公共服务两周。我们在扩音器上的接线员不想在那里有另一个显示器,这会打扰他听讲道。

我的项目:我有一个 RPi4 和一个 Behringer U-Phoria UMC202HD。输入 atm 是标准麦克风,连接到接口。Pi配置了darkice并使用自己的icecast安装,而我正在家里测试一切。自从我开始流媒体项目以来,在服务结束后,我们将 Rocket Broadcaster 切换为使用 VLC 和一个旧服务录音文件夹(母带和 MP3 格式),以提供我们在工作或旅行时收听的来源。这个选项经常被使用,我想继续使用它。我的计划是有一个带 LED 电平表的小盒子,其中显示输入电平。这应该用一个小的python脚本来完成。我还想添加两个按钮,用于加载两个设置的预设。按钮 1:杀死当前源并开始暗黑直播。按钮 2:终止当前源并开始播放旧录音。这两个选项都应该为操作员提供视觉反馈。覆盆子必须在无头模式下工作,而无需 VNC 或 SSH 连接才能正常使用。

我的问题:我试过: sudo killall darkice && /home/pi/darkice.sh

此代码将被更改,因为我可能必须使用 ices 来播放 mp3。所以基本上它会杀死黑冰,开始冰播放(现在只在眨眼间重新启动流),反之亦然。bash 文件存在并在重新启动时通过 cronjob 执行。效果很好。当我执行上述 killall 命令时,icecast 几乎立即继续广播,但流在客户端上停止。每个人都需要重新启动它。我是否可以选择更改设置,以便我能够在两个选项之间切换而无需所有人重新启动?我的计划是创建一个 bash 脚本,我在里面完成这一切并通过 GPIO 输入和 pythoncode 执行它。

提前致谢!

标签: pythonicecastraspberry-pi4

解决方案


推荐阅读