Python广播到shoutcast(DNAS)或icecast

时间:2017-11-05 11:31:53

标签: python python-3.x streaming audio-streaming shoutcast

我一直在寻找解决方案,我完全陷入了困境。 icecast / shoutcast libs似乎都是Python 2.7,这是一个问题,因为我正在使用3.6

从广播和身份验证开始的任何想法都非常有用。我正在寻找流式传输mp3文件。

TIA。

2 个答案:

答案 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文档。最好的液体肥皂是免费的。