我试图在完成我想做的事情后停止ffmpeg进程,但我无法找到方法。
这就是我所做的。
//Process for running ffmpeg
Process process = new Process();
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.FileName = ffmpegfile;
process.StartInfo.Arguments = commandtorun;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.WaitForExit();
process.Close();
问题是ffmpeg在完成执行后没有告诉进程停止,所以我不能使用WaitForExit()调用。
我尝试做的是
commandtorun = commandtorun+ " && exit";
强制ffmpeg在完成执行后关闭。现在这在我尝试使用cmd时有效。
但是当我在C#中做同样的事情时,ffmpeg会在命令执行后立即关闭。
有没有办法在处理完成后强制ffmpeg或进程关闭?
答案 0 :(得分:0)
尝试
process.StartInfo.UseShellExecute = true;
这将强制进程在shell中运行。我不知道为什么它使用标准执行不起作用,但有时在shell执行中进程的行为有所不同。