【发布时间】:2017-02-07 11:09:36
【问题描述】:
我正在尝试转录播客。为此,我使用 FFMPEG 解码 mp3 流,并将生成的 PCM 输出通过管道传输到语音识别组件。我的代码如下所示。
mp3=subprocess.Popen(['ffmpeg','-i',audio_url,
'-f','s16le','-ac','1','-ar','16000','pipe:0'],
stdout=subprocess.PIPE)
sphinx=subprocess.Popen(['java','-jar','transcriber.jar'],
stdin=mp3.stdout,
stdout=subprocess.PIPE)
audio_url 是 mp3 文件的 url。
当我尝试运行它时,它挂起。似乎通过管道提供解码的 PCM 数据已陷入僵局。我能做些什么来解决这个问题?输出数据的大小可能对于subprocess.Popen.communicate 来说太大而无法选择,并且显式调用mp3.stdout.close() 没有任何效果。
【问题讨论】:
标签: python ffmpeg subprocess