我正在开发一个Windows表单程序,该程序可以通过类Process
调用ffmpeg库。
当我在Visual Studio 2013中使用调试运行它时,它工作正常。但是当我安装程序并调用调用 ffmpeg Process
的操作时,它不起作用。cmd屏幕出现消失,没有任何反应。
我试图知道获取带有 ffmpeg 输出的日志文件会发生什么,以防万一这是 ffmpeg 库中的问题。但是,执行后日志为空,这意味着 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
"开头的原因(。
您确定在尝试执行cmd时这不是权限问题吗.exe(例如,您需要管理员权限(
尝试添加
startInfo.Verb = "runas";
保罗
这不是文件/目录名称中空格的路径问题吗?对于 ffmpegPath 或您的命令参数之一(如果是文件路径(。用 ' 括住所有文件路径,如下所示。
尝试用">
startInfo.Arguments = "/c '" + ffmpegPath + "' " + commandArguments;
您也可以尝试将/K 添加到 cmd 命令调用中,以便在命令提示符完成后停止关闭命令提示符。它可能会在关闭窗口之前告诉您错误,但如果它关闭得太快,您将看不到它
祝你好运:)保罗