在Python中使用ffmpeg实时转换mp3为wav

0 投票
1 回答
2420 浏览
提问于 2025-04-17 22:09

我想在Python中使用ffmpeg实时将mp3文件转换成wav文件。

我通过subprocess来调用它,想知道怎么才能在不保存为文件的情况下,直接播放转换后的wav文件(或者在转换的同时播放)?

这是我目前的代码:

我用aplay只是举个例子。

FileLocation = "/home/file.mp3"

subprocess.call(["ffmpeg", "-i", FileLocation etc etc "newfail.wav"])
os.system("aplay ... ") #play it on the fly here

据我了解,如果我把文件名设置为“-”,它会把输出发送到标准输出(stdout),但我不知道怎么读取标准输出……

1 个回答

1

要在没有命令行的情况下模拟 source arg1 arg2 | sink 这个命令:

from subprocess import Popen, PIPE

source = Popen(['source', 'arg1', 'arg2'], stdout=PIPE)
sink = Popen(['sink'], stdin=source.stdout)
source.stdout.close()
source.wait()
sink.wait()

撰写回答