我一直在寻找解决方案,我完全陷入了困境。 icecast / shoutcast libs似乎都是Python 2.7,这是一个问题,因为我正在使用3.6
从广播和身份验证开始的任何想法都非常有用。我正在寻找流式传输mp3文件。
TIA。
答案 0 :(得分:0)
首先,您需要对音频流进行编码。您需要实时运行此流,并且需要具有恒定的采样率。仅仅通过管道传输MP3文件是不够的......他们可能有ID3标签可能会破坏流,并且它们可能处于不同的采样率。它对于互联网流媒体具有恒定比特率也是理想的(但这不是流工作所必需的。)
最后,你基本上会有一个大的永无止境的MP3文件,其创建速度与播放的速度相同。
接下来,您只需要向Icecast服务器发出HTTP PUT。请参阅此问题:Is there any way to do HTTP PUT in python
Icecast一般使用basic auth。
如果你想让自己变得更容易(尽管控制力较弱),请向FFmpeg宣传:
ffmpeg -re -i [some playlist] -f mp3 -method PUT http://example.com/some-stream
(其中example.com
是您的Icecast服务器)
答案 1 :(得分:0)
使用liquidsoap生成音频流,并将其输出到shoutcast和/或icecast2服务器。我目前有Liquidsoap,shoutcast,icecast2和apache2都在同一Ubuntu 18.04服务器上运行。 liquidsoap生成音频流,并将其输出到shoutcast和icecast2。侦听器可以使用其浏览器访问端口8000上的shoutcast流或端口8010上的icecast2流。它可以24 x 7很好地工作。
您可以有多个流,liquidsoap具有许多功能,包括播放列表和基于时间的(时钟)操作。有关从mp3或其他格式的音频文件创建音频流的示例,请参阅liquidsoap文档。最好的液体肥皂是免费的。