process.start()参数
当我在dos中执行以下命令时它将正常工作
ffmpeg -f image2 -i frame%d.jpg -vcodec mpeg4 -b 800k video.avi
当我尝试在c#中使用不带参数的process类时,它将ffmpeg加载到控制台窗口中,然后像往常一样消失。但是,当我尝试像上面一样使用自变量时,其格式完全相同…不起作用!ffmpeg仍然加载,但是由于控制台窗口关闭得如此之快,我无法确定错误是什么:/
Process ffmpeg = new Process();ffmpeg.StartInfo.FileName = path + "//" + "ffmpeg.exe";
ffmpeg.StartInfo.Arguments = " -f image2 -i frame%d.jpg -vcodec mpeg4 -b 800k video.avi";
ffmpeg.Start();
有人知道这是为什么吗?为什么即使在参数完全相同的情况下,该命令也可以从dos起作用,然后又无法使用c#起作用?我以前在很多事情上都使用过这种方法,但从未遇到过。
回答:
尝试完全限定参数中的文件名-我注意到您正在FileName部分中指定路径,因此该过程可能在其他地方启动,然后找不到参数并导致错误。
如果可行,则可以在StartInfo上设置WorkingDirectory属性。
实际上,根据链接
如果提供了用户名和密码,则必须设置WorkingDirectory属性。如果未设置该属性,则默认工作目录为%SYSTEMROOT%\ system32。
以上是 process.start()参数 的全部内容, 来源链接: utcz.com/qa/434309.html