[C#]FFMPEG - jaki procent konwertowanego pliku

Witam,

napisałem prosty program, którym konwertuje pliki w następujący sposób:

Process converter = new Process();

                converter.StartInfo.FileName = "ffmpeg.exe";

                converter.StartInfo.Arguments = args;

                converter.StartInfo.UseShellExecute = false;

                converter.StartInfo.CreateNoWindow = true;

                converter.StartInfo.RedirectStandardOutput = true;

                converter.Start();

                converter.WaitForExit();

                converter.Close();

Czy jest możliwość pobrania z ffmpeg, ile procent już przekonwertowano?

Proces odpal w osobnym wątku.

Przekieruj StandardOutput do strumienia.

W głównym wątku Czytaj w kółko ze strumienia i sprawdzaj co ffmpeg.exe wyprowadza na ekran.

Dziękuje :slight_smile: Popróbuje, jakby coś było nie tak to napisze.

Process uruchamia się jako osobny wątek :wink:

Owszem ale WaitForExit() - nie;

A po co używać WaitForExit jeśli w pętli można sprawdzać, czy “process.HasExited” - jeden wątek mniej i do tego mamy zapewnioną kontrolę nad procesem bez zabawy w synchronizacje danych.

Witam, dopiero teraz znalazłem czas na dokończenie ćwiczeń z ffmpeg’iem, lecz nadal mam problem.

Napisałem coś takiego:

converter.StartInfo.FileName = "ffmpeg.exe";

                converter.StartInfo.Arguments = args;

                converter.StartInfo.UseShellExecute = false;

                converter.StartInfo.CreateNoWindow = true;

                converter.StartInfo.RedirectStandardOutput = true;

                converter.Start();

                timer1.Start();

private void timer1_Tick(object sender, EventArgs e)

        {

            sr = converter.StandardOutput;

            textBox2.Text += sr.ReadToEnd();

        }

Niestety do strumienia nie przekazywane są żadne dane. Próbowałem już zrobić to na kilka(naście) sposobów, ale cały czas efekt jest identyczny.

Mógłby mnie ktoś wspomóc wiedzą? :wink:

Edit

Już sobie poradziłem. Okazało się, że w przypadku FFMPEG’a trzeba przechwycic standardError, a nie standardOutput.

Pozdrawiam.