如何从handbrakecli --scan获得输出?

时间:2016-02-19 00:32:41

标签: c# console handbrake

我正在开发一个c#程序来循环播放我的Windows Media Center录制的电视节目(.wtv)并使用手刹cli进行转换。我现在只需要一切工作,我也想利用--scan功能,这样我就可以根据输入文件自定义音频和视频参数,而不是设置静态。

这是我到目前为止扫描的内容,但我似乎无法找到打印到控制台窗口的数据的位置。

var p = new Process();
var pSI = new ProcessStartInfo();
pSI.RedirectStandardOutput = true;
pSI.UseShellExecute = false;
pSI.FileName = HandBrakeLocation;
pSI.Arguments = string.Concat(@"--scan -i ", '"', inputFile, '"');
pSI.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo = pSI;
p.Start();
var stdout = p.StandardOutput;//streamreader
p.WaitForExit();

我认为也许p.StandardOutput会将控制台输出发送到stdout StreamReader变量,但我无法在对象内的任何地方找到它。我错过了什么?

谢谢你的时间和帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用流程的StandardOutput属性(流式传输)读取程序输出:

var output = stdout.ReadToEnd();
p.WaitForExit();

可以在MSDN上找到更多信息:https://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput%28v=vs.110%29.aspx