I had the same issue. I was redirecting the standard output, but FFmpeg outputs text messages to the standard error.
static void Main(string[] args)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "ffmpeg.exe";
startInfo.Arguments = "-hide_banner -list_devices true -f dshow -i dummy";
startInfo.RedirectStandardError = true;
try
{
using (Process process = Process.Start(startInfo))
{
while (!process.StandardError.EndOfStream)
{
string line = process.StandardError.ReadLine();
Console.WriteLine(line);
}
process.WaitForExit();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
Tip: use -hide_banner in ffmpeg argument and your next step will be easier :-)
I hope it helps someone.