【发布时间】:2019-06-29 10:42:09
【问题描述】:
我正在开发一个 Windows 窗体程序,该程序通过 Process 类调用 ffmpeg 库。
当我在 Visual Studio 2013 中使用 Debug 运行它时它工作正常。但是当我安装程序并调用调用 ffmpeg Process 的操作时,它不起作用. cmd屏幕出现消失,没有任何反应。
我试图知道获取带有 ffmpeg 输出的日志文件会发生什么,以防 ffmpeg 库中出现问题。但是执行完后log是空的,说明ffmpeg命令还没有执行。
有人可以帮帮我吗?
代码是这样的:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/c " + ffmpegPath + " " + commandArguments;
using (Process processTemp = new Process())
{
processTemp.StartInfo = startInfo;
processTemp.EnableRaisingEvents = true;
processTemp.Start();
processTemp.WaitForExit();
}
我正在调用cmd.exe(不是直接ffmpeg.exe),因为在参数中有时可能有一个管道(这就是命令以“/c”开头的原因)。
【问题讨论】:
-
调试时断点在哪里?尝试在 WaitForExit 之后设置它。那它还能用吗?
-
当我调试时它总是工作正常,我的意思是,当我从 Visual Studio 执行它时它总是工作正常(有断点或没有断点),但是当我执行安装程序时它没有所以。
-
我想做一个声明... 做了另一个测试,我发现问题与Arguments值有关: 当我把Arguments的值直接写在一个cmd窗口中,它不起作用,但是,如果我删除开头的“/c”,它就可以了。但是,如果我从代码中删除“/c”并执行程序,则当进程启动时,cmd窗口打开但命令未执行(命令包含管道&&)......我不明白它。有人可以帮忙吗?
标签: c# .net visual-studio winforms ffmpeg