2016-02-26 94 views
1

我有一個PHP代碼從Windows命令行調用的ffmpeg(因爲我運行Apache本地)與:C#和ffpmeg命令行麻煩

//ffmpeg -i input.mp4 -r 20 output.gif 
     echo exec('C:\ffmpeg\bin\ffmpeg.exe -i videos/file.avi -r 10 -s 450x230 videos/file.gif'); 

,它工作正常!現在我寫了一個C#程序,我試圖做同樣的事情:

System.Diagnostics.Process.Start 

但它失敗。

問:如何從PHP代碼執行相同的命令,但是從C#代碼中執行相同的命令?

+1

「從Windows命令行(因爲我在本地運行Apache)」 - 請詳細說明這兩個語句是如何相關的。到底PHP腳本究竟是如何啓動的以及如何執行.net應用程序? – VolkerK

+0

我有一個PHP腳本,我通過瀏覽器在我的Windows機器上運行。我有一個本地的apache服務器安裝。當我調用腳本voer瀏覽器時,php腳本通過ffmpeg很好地轉換。現在我嘗試從C#執行相同的命令。 – mirzahat

+0

php代碼和.net沒有連接。這可能會讓你感到困惑。我只想讓在PHP中工作的ffmpeg的命令行也可以在C#中工作。 – mirzahat

回答

0
Process process = Process.Start(
    new ProcessStartInfo 
    { 
     FileName = @"C:\ffmpeg\bin\ffmpeg.exe", 
     Arguments = "-i videos/file.avi -r 10 -s 450x230 videos/file.gif", 
     WindowStyle = ProcessWindowStyle.Hidden 
    } 
); 
process.WaitForExit(); 

如果失敗,將引發例外,例如, 如果未找到可執行文件,則System.ComponentModel.Win32Exception與HResult = -2147467259。