2016-02-26 58 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。