【发布时间】:2011-03-17 03:08:40
【问题描述】:
当我在dos中执行以下命令时,它会正常工作
ffmpeg -f image2 -i frame%d.jpg -vcodec mpeg4 -b 800k video.avi
当我尝试在 c# 中使用不带参数的进程类时,它会在控制台窗口中加载 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是正确的吗?斜杠不应该是 \\ 而不是 //. -
使用 System.IO.Path.Combine(path, "ffmpeg.exe") 代替。这会将正确的目录分隔符放在路径中(如果还没有的话)。
-
ye 文件名属性是正确的,就像我说的队友,这个过程实际上正在开始,所以必须找到文件,它的参数失败了。我尝试连接字符串,然后将其传递给参数而不是上面的,仍然没有乐趣:
-
如果我需要将 .caf 转换为 .mp3 过程的参数是什么
标签: c# .net command-line process