如何在C#中完成处理后停止ffmpeg进程?

时间:2018-01-07 20:03:50

标签: c# timer ffmpeg

我试图在完成我想做的事情后停止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或进程关闭?

1 个答案:

答案 0 :(得分:0)

尝试

process.StartInfo.UseShellExecute = true;

这将强制进程在shell中运行。我不知道为什么它使用标准执行不起作用,但有时在shell执行中进程的行为有所不同。