是否有来自服务器的实时流式传输音频,而本地文件的方法吗?

问题描述 投票:-1回答:1

我正在寻找一种方式来不断从服务器流式传输音频,主要问题是服务器端代码就会收到很多的URL传输音频。也将有实例其中的URL被换直播和音频的新件,而不是流。我还没有发现,不涉及我下载每个文件,然后流,它会妨碍Live功能的解决方案。

我已经尝试使用python的VLC但它不会允许改变的时刻正在直播的网址的能力。我也尝试使用pyaudio,但我一直没能得到正确的音频格式,更别说掉音频源。

一个例子链接,fairwarning它会自动播放:audio

python server audio-streaming
1个回答
2
投票

为了使发送给客户络绎不绝,你需要打破该项目分为两半。

Playout

你需要的东西,从他们的压缩格式的源流解码到可以操纵非压缩标准格式...原始PCM样本。使用一个子进程,并把它输出到标准输出,让你可以在你的Python脚本数据。如果你想,但FFmpeg的是很容易的,您可以使用VLC这个:

ffmpeg -i "http://example.com/stream" -ar 48000 -ac 2 -f f32le -acodec pcm_f32le -

将输出的原始PCM到STDOUT为32位浮点数,立体声,在48千赫。一旦这种标准格式,你可以任意加入流。所以,当你完成一个打流,只要杀的过程中,切换到下一个,并开始从一个新的播放样本。

Encoding

你想创建一个,那么你可以重新编码与一些外部编码器,基本上反向从你做了什么播出一个PCM流。同样,FFmpeg的东西能为你做:

ffmpeg -f f32le -ar 48000 -ac 2 - -f opus -acodec libopus icecast://...

现在,你会在这里注意输出的例子,我建议派遣这一关来的Icecast。的Icecast是你可以使用一个体面的流媒体服务器。如果你宁愿只输出直接通过HTTP,你可以。但是,如果你正在玩这个流出来不止一个监听器,我建议让的Icecast或类似的照顾它给你。

© www.soinside.com 2019 - 2024. All rights reserved.