回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我尝试使用python+ffmpeg+oggenc将任何音频文件转换为ogg。这个程序几乎可以工作。但是对于大文件(我想是大约6mb),ffmpeg进程开始在pipe_wait处休眠。我不知道它在等哪根管子。在</p>
<p>如果我终止ffmpeg进程,oggenc进程将继续,我将得到一个ogg文件,其中包含大约2:40的所有声音。在</p>
<pre><code>#!/usr/bin/env python
# -*- coding: utf-8 -*-
from subprocess import Popen, PIPE
from sys import argv
ffmpeg = Popen([
"ffmpeg",
"-i", argv[1],
"-vcodec", "null",
"-acodec", "pcm_s16le",
"-ac", "2",
"-ab", "44100",
"-f", "wav",
"-"
],stdout = PIPE,stderr = PIPE)
oggenc = Popen([
"oggenc",
"-", "--raw",
"-q", "4",
"-o", argv[2]
],stdin = ffmpeg.stdout,stderr = PIPE)
oggenc.communicate()
ffmpeg.communicate()
</code></pre>
<p>编辑:</p>
<p>我想我可以补充一句,这是完美的:</p>
^{pr2}$