Próbuję utworzyć otoki .NET do konwersji mediów plik używając ffmepg, oto co próbowałem:Wejdź w interakcję z ffmpeg z programu .NET?
static void Main(string[] args)
{
if (File.Exists("sample.mp3")) File.Delete("sample.mp3");
string result;
using (Process p = new Process())
{
p.StartInfo.FileName = "ffmpeg";
p.StartInfo.Arguments = "-i sample.wma sample.mp3";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
//result is assigned with an empty string!
result = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
}
Co właściwie się dzieje, jest treść programu ffmpeg jest drukowany do Aplikacja konsoli, ale zmienna result
to pusty ciąg znaków. Chcę interaktywnie kontrolować postęp konwersji, aby użytkownik nie musiał nawet wiedzieć, że korzystam z ffmpeg, ale nadal zna szczegóły postępu konwersji i jaki procent itp. Aplikacja jest gotowa.
Zasadniczo byłbym również zadowolony z wrappera .NET dla P/Invoke do funkcji konwersji TYLKO (nie jestem zainteresowany całą biblioteką zewnętrzną, chyba że mogę wyodrębnić z niej funkcję PI).
Ktoś z doświadczeniem w ffmpeg & .NET?
Aktualizacja Proszę zobaczyć moje kolejne pytanie, how to write input to a running ffmpeg process.
The StringBuilder sb nie jest używany. –
@aaaa bbbb: Usunięto, dziękuję. Pozostało to z wcześniejszych prób, w każdym razie dodałem kilka ważnych funkcji do mojej odpowiedzi. ** Czy możesz rzucić okiem na [this] (http://stackoverflow.com/questions/7296901) **? – Shimmy