日期:2014-05-17  浏览次数:21504 次

求高手指点,C#调用ffmpeg不能正常退出
本帖最后由 icfox 于 2013-05-22 18:52:53 编辑
public void CmdProcess(string command)//调用CMD
{
//实例化一个进程类
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";

//将cmd的标准输入和输出全部重定向到.NET的程序中
process.StartInfo.UseShellExecute = false;//此处必须为false,否则引发异常
process.StartInfo.RedirectStandardInput = true;//标准输入
process.StartInfo.RedirectStandardOutput = true;//标准输出
process.StartInfo.CreateNoWindow = false;//不显示命令行窗口界面

process.Start();//启动线程
//process.StartInfo.Arguments = command;
process.StandardInput.WriteLine(command);
process.StandardInput.WriteLine("exit");
process.WaitForExit();//阻塞等待进程结束
process.StandardOutput.ReadToEnd();
process.Close();//关闭进程
process.Dispose();//释放资源
}
commond 是调用ffmpeg的命令行,直接在cmd里执行这个命令行可以,这样调用就不行了,ffmpeg无法退出,无法继续执行下面的命令行.

如果用process.StartInfo.Arguments = command;用这句代码的话命令行秒退,不执行.
求大牛指点.
C# FFmpeg

------解决方案--------------------
首先确保你的ffmpeg在命令行中能正常退出
------解决方案--------------------
不要启动cmd,直接运行ffmpeg -I xxxxxx试一试
------解决方案--------------------
加quiet试试呢,怎么看都像cmd的buffer到上限了