2014-12-23 118 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