我有一个视频文件列表,我想用 ffmpeg 转换它们。这是我的代码:
public static void ConvertToMp3(String inputPath, String title)
{
String outputpath = "\"D:\\Mp3\\" + title + ".mp3\"";
String _out;
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.FileName = "ffmpeg";
p.StartInfo.Arguments = " -i \"" + inputPath + "\" -vn -f mp3 -ab 192k " + outputpath;
p.Start();
p.StandardOutput.ReadToEnd();
_out = p.StandardError.ReadToEnd();
p.WaitForExit();
if(!p.HasExited)
p.Kill();
Console.WriteLine(_out);
}
它工作正常,但是当我在循环中调用此函数n次时,它打开了太多进程。我想一次只打开一个进程,完成后,转到下一个。