0
我有一個應用程序正在做一些視頻處理。進程調用CLI exe不返回輸出
我需要在處理媒體之前分析它。
ffmpeg實用程序ffprobe.exe
提供了我需要的所有信息。
但是我使用不會返回時,該命令在cmd
窗口運行出現的文本代碼:
public static string RunConsoleCommand(string command, string args)
{
var consoleOut = "";
using (var process = new Process())
{
process.StartInfo = new ProcessStartInfo
{
FileName = command,
Arguments = args,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true
};
process.Start();
consoleOut = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return consoleOut;
}
}
什麼想法?
Thanks @ T.Fabre您對ErrorDataReveived的評論是關鍵。 ffmpeg應用程序將其日誌輸出到此錯誤流。 –
我在'RedirectStandardOutput = true'和'process.OutputDataReceived + = new DataReceivedEventHandler((snd,e)=> {consoleOut + = e.Data;});''之間存在衝突。我必須刪除第一個,我的程序正確地返回了我的輸出,爲什麼? – Apaachee
不太確定。 [MSDN](http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process.outputdatareceived.aspx)指出應該啓用RedirectStandardOutput以將輸出發送到您的事件處理程序。你應該用一個代碼示例來開啓一個新的問題,kindda很難像這樣說。 –