如何使用Python同时流式传输多个音频文件

时间:2019-05-27 16:25:17

标签: python sockets tcp stream raspberry-pi

我希望将多个.wav格式的音频文件流式传输到Raspberry Pi中以进行同步播放。我希望使用Python作为我的选择语言和TCP套接字,尽管我知道UDP对于延迟可能是必需的。任何可以将我指向正确方向/提供一些意见的人,将不胜感激!

1 个答案:

答案 0 :(得分:0)

实际上,有很多方法可以做到这一点。例如,您可以编写自己的Python脚本并在套接字上发送音频帧。但是,如果您只需要进行流处理,则可以使用FFmpeg之类的高级工具。它将为您提供一系列解决方案,以使用裸UDP或经过优化的协议(例如RTP或RTSP)在网络上流式传输音频和视频。

例如,如果您要将ALSA设备plughw:1,0流式传输到您的本地主机,它将变成这样:

ffmpeg -ac 1 -f alsa -i hw:0,0 -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp://localhost:1234

此外,您还可以使用Alsa录制应用程序(arecord)之类的其他工具,并将其输出传递给FFmpeg:

arecord -f cd -D plughw:1,0 | ffmpeg -i - -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp://localhost:1234

然后您可以简单地用ffplay播放它:

ffplay rtp://localhost:1234

您可以在here中找到有关FFmpeg的流功能的更多信息。

相关问题