我试图使用ffmpeg将Python中的mp3文件转换为wav文件。
我使用子进程调用它,如何将它的输出作为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,但我不知道如何读取标准输出...
答案 0 :(得分:1)
在没有shell的情况下模拟source arg1 arg2 | sink
shell命令:
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()