c#批处理文件不能正常运行

本文关键字:正常运行 不能 批处理文件 | 更新日期: 2023-09-27 18:19:09

我正在尝试使用c#和CMD运行ffmpeg命令。

我正在创建并执行一个.bat文件来做到这一点。.bat似乎可以正确创建,但在c#中执行时,它不能正确运行-它无法找到映像名称。但是,当我退出调试器并运行手动创建的调试器时,它会正常工作。

图像刚刚由调试器创建,这可能与它有关吗?

 string command1=  "ffmpeg -r 1/5 -i " + projectPrefix + "image-%%02d.bmp -i music.mp3 -qscale:v 2 -shortest -codec:a copy " + projectPrefix + "output.flv 'n ffmpeg -i "+projectPrefix+"output.flv -vcodec wmv1 -acodec adpcm_ima_wav " + projectPrefix + ".wmv";
      // Write the string to a file.
     System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:'Users'Scott'desktop'"+projectPrefix+".bat");
     file.WriteLine(command1);
     file.Close();
     Thread.Sleep(10000);
     System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:'Users'Scott'desktop'" + projectPrefix + ".bat");
     psi.RedirectStandardOutput = true;
     psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
     psi.UseShellExecute = false;
     System.Diagnostics.Process listFiles;
     listFiles = System.Diagnostics.Process.Start(psi);
     System.IO.StreamReader myOutput = listFiles.StandardOutput;
     listFiles.WaitForExit(2000);
     if (listFiles.HasExited)
     {
         string output = myOutput.ReadToEnd();
     }

谢谢

c#批处理文件不能正常运行

为您的进程初始化StartInfo并相应地传递参数:

Process ffmpeg = new Process();
ffmpeg.StartInfo.FileName = path + "//" + "ffmpeg.exe";
ffmpeg.StartInfo.Arguments = " -f image -i frame.jpg -vcodec mpeg4 -b 1200k test.avi";
ffmpeg.Start();
这里描述了一个非常类似的情况:process.start() arguments