public static MkvInfo Parse(string mkv) { Process p = new Process(); ProcessStartInfo psi = new ProcessStartInfo(Utils.MkvMergeExecutable, "--identify-verbose \"" + mkv + "\""); psi.WindowStyle = ProcessWindowStyle.Hidden; psi.UseShellExecute = false; psi.CreateNoWindow = true; psi.RedirectStandardOutput = true; p.StartInfo = psi; p.Start(); p.WaitForExit(); StreamReader sr = p.StandardOutput; string[] tracks = sr.ReadToEnd().Split(new string[] { "\r\n", "\r" }, StringSplitOptions.RemoveEmptyEntries); var ret = new MkvInfo(); foreach (string line in tracks) { var track = MkvTrack.Parse(line); if (track != null) { ret.Tracks.Add(track); } } return(ret); }