Здравствуйте, PDmitry, Вы писали:
PD>PD>ProcessStartInfo startInfo = new ProcessStartInfo("ffmpeg.exe","-i 1.avi -y -b 360 -r 25 -s 320x200 -deinterlace -ab 56 -ar 22050 -ac 1 \"2.flv\" ");
PD>startInfo.RedirectStandardError = true;
PD>startInfo.RedirectStandardOutput = true;
PD>startInfo.RedirectStandardInput = true;
PD>startInfo.UseShellExecute = false;
PD>startInfo.CreateNoWindow = true;
PD>Process process = Process.Start(startInfo);
PD>process.PriorityClass = ProcessPriorityClass.Normal;
PD>Console.WriteLine(process.StandardOutput.ReadToEnd());
PD>process.WaitForExit();
PD>
Ключевое выделенно. Раз вы указали, что необходимо перенаправлять поток ошибок, то вы
обязаны читать из этого потока,
поскольку пишущий в поток ошибок дочерний процесс будет заблокирован при заполнении буфера потока ошибок пока вы не прочитаете его.
Причем при перенаправлении более одного потока чтение необходимо производить в отдельных нитях (thread) для каждого потока,
дабы избежать блокировок.
Еще раз почитайте ремарку к
ProcessStartInfo.RedirectStandardError.