【问题标题】:Problem launching FFmpeg inside C#在 C# 中启动 FFmpeg 时出现问题
【发布时间】:2011-05-19 13:46:32
【问题描述】:

我在我的 C# 应用程序中通过 ProcessStartInfo 调用 FFmpeg,但是我不能一直收到错误;

预设“lossless_slow”的文件不是 找到了

这是我的 C# 代码;

var processinfo = new ProcessStartInfo();
processinfo.FileName = "FFmpeg\\bin\\ffmpeg.exe";
processinfo.Arguments = "-i C:\Temp\input.mp4 -y -acodec aac -strict experimental -ab 96k -vcodec libx264 -vpre lossless_slow -crf 22 -threads 0 C:\Temp\output.mp4"
processinfo.RedirectStandardOutput = true;
processinfo.RedirectStandardError = true;
processinfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
processinfo.UseShellExecute = false;
processinfo.LoadUserProfile = true;
processinfo.EnvironmentVariables.Add("HOME", @"C:\Users\wonea\.ffmpeg");

var reg = System.Diagnostics.Process.Start(processinfo);

string output = string.Empty;
string error = string.Empty;

using (System.IO.StreamReader myOutput = reg.StandardOutput)
{
    output = myOutput.ReadToEnd();
}
using (System.IO.StreamReader myError = reg.StandardError)
{
    error = myError.ReadToEnd();
}

现在我已经把我的预设放在文件夹中了

C:\Users\wonea\ .ffmpeg

并将其包含在 Windows 路径用户变量 HOME 中。这在从命令行运行 FFmpeg 时工作正常,但是当在我的 C# 应用程序中发出命令时失败,为什么!?感谢您的帮助...!

另外值得注意的是,我将服务作为“网络服务”运行。

【问题讨论】:

  • > file for preset lossless_slow ...您知道该文件是否/在 ffmpeg 目录层次结构中存在于何处?它是否需要在您的 PATH 中添加额外的目录路径?祝你好运!

标签: c# command-line ffmpeg processstartinfo


【解决方案1】:

在这种情况下,我总是启动procmon 工具,它可以显示应用程序的所有文件操作。您可以根据预设文件的名称设置过滤器,并查看 ffmpeg 试图找到它的位置。

【讨论】:

  • 谢谢,我意识到它在寻找 C:\.FFmpeg\.FFmpeg\ 奇怪,但 Procmon 强调了这个问题。
【解决方案2】:

在这里设置 HOME 变量看起来不错。

我唯一看到的是,在您将 HOME 设置为 @"C:\Users\wonea.ffmpeg" 的代码中,在您提到该文件的文本中,该文件位于:C:\Users\wonea.ffmpeg

其中一个是错字吗?

【讨论】:

  • 感谢您的回复,这实际上是 stackoverflow 中的一个错误,因此我的斜线被无意中删除了。
  • 我认为可能是这样的。谢谢!
猜你喜欢
  • 2016-11-20
  • 2018-07-31
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多