繁体   English   中英

C#应用程序-从命令行运行FFMpeg不起作用

[英]C# app - running FFMpeg from the command line is not working

我正在尝试从C#的命令行运行FFMpeg。 以前,我是从“ CMD.exe”运行它的,但是它正常工作,但是这需要在本地安装ffmpeg,并配置系统环境变量。 因此,我想直接从“ ffmpeg.exe”运行它。 我正在使用以下代码(所有路径都是正确的),但没有任何反应:

string programToRun = "C:\\Users\\dkahn\\Documents\\PlaybackTool\\PlaybackTool\\Desktop\\Source\\Player\\Player\\ffmpeg\\ffmpeg.exe";

string directoryName = "C:\\Users\\dkahn\\Documents\\PlaybackTool\\PlaybackTool\\Desktop\\Source\\Player\\test\\test1-1.mp4";

string command = "@ffmpeg -i test1-1.mp4 -r 1  -s 180x101 test1-1\\output_%04d.png";

Process cmd = new Process();
cmd.StartInfo.FileName = programToRun;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.WorkingDirectory = directoryName;
cmd.Start();
 cmd.StandardInput.WriteLine(command);
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();

有人有见识吗?

这就是我解决此问题的方法。

           var startInfo = new ProcessStartInfo(AppDomain.CurrentDomain.BaseDirectory + "ffmpeg.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;
            startInfo.WorkingDirectory = path + "\\";

            startInfo.Arguments = "-ss " + _startTime + " -i " + info.FullName + " -t " + _duration + " -map 0 -c copy -c:a copy " + "sample" + GetExtension(info);//-acodec

            var processn = Process.Start(startInfo);
            processn.EnableRaisingEvents = true;

            processn.WaitForExit();

其中path是您的目录,info是您要处理的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM