【发布时间】: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