小编典典

process.start()参数

c#

当我在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#起作用?我以前在很多事情上都使用过这种方法,但从未遇到过。


阅读 1609

收藏
2020-05-19

共1个答案

小编典典

尝试完全限定参数中的文件名-我注意到您正在FileName部分中指定路径,因此该过程可能在其他地方启动,然后找不到参数并导致错误。

如果可行,则可以在StartInfo上设置WorkingDirectory属性。

实际上,根据链接

如果提供了用户名和密码,则必须设置WorkingDirectory属性。如果未设置该属性,则默认工作目录为%SYSTEMROOT%\ system32。

2020-05-19