如何在服务器环境中运行自动化网络电台?

Afr*_*Afr 6 server automation internet-radio icecast ices

我正在运行带有 icecast-2.3.2 和 ices-0.4.0 的 Ubuntu 服务器环境以启用互联网广播流。

我有一个包含音乐文件的目录,主要是 MP3,我们称之为/PATH/TO/MUSIC. 我也有带有叮当声和播客的目录。/PATH/TO/JINGLES/PATH/TO/PODCASTS

到目前为止,我的服务器已启动并运行。

什么工作:

  • 使用脚本和定时任务从音乐目录创建每日随机播放列表。
  • 运行 IceCast2-Server 并使用 IceS 流式传输播放列表文件。

我现在的问题是:

  • 如何在特定时间播放播客和歌曲?例如,每隔一个小时播放某个叮当声,或者每个星期四晚上 8 点播放某个播客?

我试图在互联网上搜索这个话题,但似乎没有针对这个无线电自动化问题的“最终解决方案”,而且似乎很多解决方案都相当笨拙,不是吗?

请记住,这是一个服务器环境,使用 GUI 的解决方案无济于事。

我感谢有关此主题的任何提示和经验!

Afr*_*Afr 3

答案是:液体皂。

Liquidsoap,多媒体流媒体的瑞士军刀,特别用于网络广播和网络电视。它具有大量功能,免费且开源!

我花了几天时间才理解流是如何生成的。Liquidsoap 由描述流参数的小脚本组成。basic.liq下面显示了一个加载并播放 mp3 播放列表(我们称之为 )的简单脚本:

#!/usr/bin/liquidsoap

# load a playlist file
stream = playlist("/path/to/playlist.pls")

# output the playlist to icecast
source = output.icecast(%mp3, host="localhost", port="8000",
         mount="listen.m3u", password="hackme")
source(stream)
Run Code Online (Sandbox Code Playgroud)

使用以下命令测试脚本:

liquidsoap --check ./basic.liq
Run Code Online (Sandbox Code Playgroud)

并使用以下命令启动脚本:

liquidsoap ./basic.liq &
Run Code Online (Sandbox Code Playgroud)

但液体皂的功效更强大。例如,要每小时播放一首歌曲,只需添加:

# add a jingle every full hour
jingle = single("/path/to/jingle.mp3")
add([stream,switch([({0m0s},jingle)])])
Run Code Online (Sandbox Code Playgroud)

但主页上描述了更多功能:

  • 静态或动态播放列表
  • 基于时间的音频源选择
  • 基于配额或时间的插入或歌曲组合
  • 现场 DJ 干预
  • 交互式用户请求
  • 完全可定制的过渡,例如淡入淡出
  • 曲目元数据的语音合成
  • 简单访问远程文件
  • 以及更多

值得一看的快速入门指南、一个更复杂的示例和其中的文档。