2014-12-23 77 views
0

下面的代码让我在CMD窗口中的错误(的Visual Studio 2013 - C#项目): “ffmpeg的”不被识别为一个内部或外部命令的ffmpeg无法识别

Process p = new Process(); 
     ProcessStartInfo info = new ProcessStartInfo(); 
     info.FileName = "cmd.exe"; 
     info.RedirectStandardInput = true; 
     info.UseShellExecute = false; 

     p.StartInfo = info; 
     p.Start(); 

     using (StreamWriter sw = p.StandardInput) 
     { 
      if (sw.BaseStream.CanWrite) 
      { 
       sw.WriteLine("ffmpeg -i test.mp4 test.mp3"); 
       // sw.WriteLine("mypassword"); 
       // sw.WriteLine("use mydb;"); 
      } 
     } 

发生此错误只有当我从代码运行命令“ffmpeg -i test.mp4 test.mp3”。另一种方式 - 从CMD直接运行命令..任何建议,使其从代码工作?

+1

你为什么试图在'cmd'内启动'ffmpeg'?你应该可以直接运行它 –

回答

2

使用WorkingDirectory属性来设置ffmpeg可执行文件所在的位置。

info.WorkingDirectory = @"C:\myFFMPEGDir"; 

目前,它正试图查找与您的进程ffmpeg相同的目录。这听起来像ffmpeg不存在,所以你需要设置路径。

或者,您可以在命令中写入整个路径。

sw.WriteLine("C:\\myFFMPEGDir\\ffmpeg.exe -i test.mp4 test.mp3"); 
+0

谢谢!它的作品:) –

+0

不客气:) – keyboardP