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
。
到目前为止,我的服务器已启动并运行。
什么工作:
我现在的问题是:
我试图在互联网上搜索这个话题,但似乎没有针对这个无线电自动化问题的“最终解决方案”,而且似乎很多解决方案都相当笨拙,不是吗?
请记住,这是一个服务器环境,使用 GUI 的解决方案无济于事。
我感谢有关此主题的任何提示和经验!
答案是:液体皂。
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 干预
- 交互式用户请求
- 完全可定制的过渡,例如淡入淡出
- 曲目元数据的语音合成
- 简单访问远程文件
- 以及更多