我正在开发Windows窗体程序,该程序通过类Process
调用 ffmpeg 库。
当我在Visual Studio 2013中使用Debug运行它时,它可以很好地工作。但是,当我安装程序并调用调用 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
”开头的原因。) >
答案 0 :(得分:0)
确定执行cmd.exe时,这不是特权问题吗(例如,您需要管理员特权)
尝试添加
startInfo.Verb = "runas";
保罗
答案 1 :(得分:0)
嗯,这不是文件/目录名称中包含空格的路径问题吗?对于ffmpegPath或您的命令参数之一(如果是文件路径)。用'包围所有文件路径,如下所示。
尝试用'
包围所有文件路径 startInfo.Arguments = "/c '" + ffmpegPath + "' " + commandArguments;
如果在完成后关闭命令提示符,您也可以尝试将/ K添加到cmd命令调用中以停止。它可能会在关闭窗口之前告诉您错误,但如果关闭如此迅速,您将看不到它
祝你好运:) 保罗