http的mp3流媒体链接,基本就是生成一个流媒体链接,然后套各种播放器的壳打开,原理都一样
播放器版,可能要缓冲一会儿才能打开
电台的流媒体链接
https://radio.chatcyf.com/chenyifaer.mp3
一个陈一发儿电台单页面的播放器
https://www.chatcyf.com/static/radio/
以及陈一发儿直播的纯音频转播
地址:https://www.chatcyf.com/live/
前些日子想搞个网络版的陈一发儿电台,大概内容就是把读邮件,唱歌,以及精彩的闲聊部分,用纯音频的方式,随机播放推流出去。
说白了,就是个没有画面的网络直播,因为实体FM电台搭建需要各种广播设备,当然还有执照什么的,所以只能搞个网络版的玩玩。
到这里,可能就有人会问,那这个和下载到手机中的mp3音乐有什么区别?
手机中的mp3属于点播性质,就是想听什么就可以点什么听,而这种电台版,讲究的就是一个随缘,我这边随机推流到什么,接收端就只能跟着听什么。
比较适合开车的时候听,至于怎么在车上播放,也是得用手机播放,然后靠蓝牙或者DLNA什么的发送到车上听吧。
毕竟都说在电台中听到的歌比手机手动点播的更好听嘛,未知才有惊喜~
至于这玩意还可以干什么,比如这个html5的分享代码,以及成果
成品演示可以看网站首页的播放器模块
代码
<!-- require APlayer -->
<link rel="stylesheet" href="https://cdn.chatcyf.com/static/jsdelivr/APlayer/dist/APlayer.min.css">
<script src="https://cdn.chatcyf.com/static/jsdelivr/APlayer/dist/APlayer.min.js"></script>
<!-- require MetingJS -->
<script src="https://cdn.chatcyf.com/static/jsdelivr/APlayer/dist/Meting.min.js"></script>
<meting-js
name="陈一发儿电台"
artist="ChatCYF"
url="https://radio.chatcyf.com/chenyifaer.mp3"
cover="https://cdn.chatcyf.com/static/2020/05/1589799830-55c03779d7d1f15.jpg">
</meting-js>
又新增了直播转播音频版,效果看上面,这里分享两个音频直播间的html的代码
<!-- require APlayer -->
<link rel="stylesheet" href="https://cdn.chatcyf.com/static/jsdelivr/APlayer/dist/APlayer.min.css">
<script src="https://cdn.chatcyf.com/static/jsdelivr/APlayer/dist/APlayer.min.js"></script>
<!-- require MetingJS -->
<script src="https://cdn.chatcyf.com/static/jsdelivr/APlayer/dist/Meting.min.js"></script>
<meting-js
name="陈一发儿直播音频"
artist="ChatCYF"
url="https://radio.chatcyf.com/chatcyf.mp3"
cover="https://cdn.chatcyf.com/static/2020/05/1589799830-55c03779d7d1f15.jpg">
</meting-js>
又或者在欧洲卡车模拟2,或者美国卡车模拟这种游戏里面,可以自定义添加电台
那么也就是说,手动添加完了以后,就可以一边在游戏中开车一边听发酱电台了
使用记事本编辑 我的文档/Euro Truck Simulator 2 文件夹中的 live_streams.sii,按格式添加或者替换
stream_data[0]: "https://radio.chatcyf.com/chenyifaer.mp3|Chenyifaer|Sim radio|CN|128|0"
游戏内效果这样
分享一下搭建的制作流程
买个vps,最好流量大点,用debian或者ubuntu系统,直接这个代码安装
sudo apt-get install icecast2
之后去编辑 /etc/icecast2/icecast.xml
修改你的用户名,密码,端口,等等各种配置,最后记得重启服务
systemctl start icecast2
systemctl restart icecast2
最后nginx添加域名,反代理就行了
更多设置的细节部分点这里:https://www.mfpud.com/topics/12913/
接下来说推流部分
使用ubuntu或者debian之类的系统,使用docker,以及搭配 liquidsoap 进行推流到 icecast
比如 mp3 的文件目录是 /www/wwwroot/67373.chatcyf.com
liquidsoap 的目录是 /home/Liquidsoap
先去新建 /home/Liquidsoap 目录,新建一个 radio.liq 文件,内容是
# 将日志输出到控制台,方便在 Docker 中查看
settings.log.stdout.set(true)
# 创建播放列表:
# 1. 目录指定为容器内的 /music(稍后会用 docker 挂载)
# 2. mode="random" 表示随机播放
# 3. reload_mode="watch" 表示监控文件夹,如果你增删了 mp3,它会自动更新列表
music = playlist(mode="random", reload_mode="watch", "/music")
# mksafe 的作用是防止意外断流。如果歌单突然为空,它会推流静音而不是直接断开连接
radio = mksafe(music)
# 将音频流推送到 Icecast 服务器
output.icecast(
%mp3, # 推流格式为 mp3
host = "8.8.8.8", # 服务器 IP
port = 1354, # 端口
user = "chatcyf", # 默认推流用户名
password = "chenyifaer", # 你的推流密码
mount = "/chenyifaer.mp3", # 挂载点
name = "Chenyifaer Radio",
description = "Chenyifaer Radio",
radio
)
终端执行
docker run -d \
--name liquidsoap \
--restart always \
-v /www/wwwroot/67373.chatcyf.com:/music:ro \
-v /root/radio/radio.liq:/etc/liquidsoap/radio.liq:ro \
savonet/liquidsoap:v2.4.5 \
/etc/liquidsoap/radio.liq
以及在群晖NAS里面,使用虚拟机装了个windows7系统的方案。
安装个音乐播放器,随机播放添加的音频文件,然后使用 butt 这个软件推流到服务器。
不过群晖的虚拟机安装系统后没有声卡驱动,所以找了个虚拟声卡软件,Voicemeeter,这个软件本来是虚拟音频调音台软件,这里只用它虚拟声卡的功能。
推流界面大概这样子



