如何在C#中使用参数执行命令行

时间:2014-05-30 15:11:56

标签: c# command-line-arguments

所以,我正在尝试运行命令行,但它似乎没有做任何事情,我不知道我错过了什么,它应该采用.asf视频并将其转换为.mp4,任何想法都会有用,谢谢。

string path1 = @"""C:\Users\Programacion\Desktop\vid.asf""";
string path2 = @"""C:\Users\Programacion\Desktop\vid.mp4""";

 private void butConvert_Click(object sender, EventArgs e)
        {            
            string strCmdText;
            strCmdText = "/C ffmpeg.exe -i " + path1 + " -vcodec mpeg4 -b:v 1200k -flags +aic+mv4 " + path2 + " -loglevel panic";
            System.Diagnostics.Process.Start(@"C:\Users\Programacion\documents\visual studio 2010\Projects\VideosDVR\VideosDVR\ffmpeg.exe", strCmdText);
    }

3 个答案:

答案 0 :(得分:0)

您似乎没有等待该过程完成。

var process = Process.Start(...);
process.WaitForExit();

答案 1 :(得分:0)

试试这个:

System.Diagnostics.Process.Start(@"""C:\Users\Programacion\documents\visual studio 2010\Projects\VideosDVR\VideosDVR\ffmpeg.exe""", strCmdText);

注意:"在驱动程序root:"C:之前和ffmg.ext"之后添加

答案 2 :(得分:-1)

您可以在Process.Start中使用参数,例如

System.Diagnostics.Process.Start("iexplore.exe","http://google.co.uk");

所以在你的情况下,我认为这将是

System.Diagnostics.Process.Start("ffmpeg.exe","strCmdText")

注意 - 您需要指定ffmpeg.exe的完整路径或将其添加到计算机的环境变量列表中