Взаимодействовать с ffmpeg из программы.NET?

я пытаюсь создать обертку.NET для преобразования медиа-файла с помощью ffmepg, вот то, что я попробовал:

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();
  }
}

то, Что на самом деле происходит, является содержанием ffmpeg программы, распечатывается к Консольному приложению, но результат переменная является пустой строкой. Я хочу управлять прогрессом преобразования в интерактивном режиме, таким образом, пользователь не должен даже знать, что я использую ffmpeg, но он все еще знает детали прогресса преобразования и какой процент и т.д. приложение составило.

В основном я также был бы доволен оберткой.NET для P/Invoke к функции преобразования ТОЛЬКО (я не интересуюсь целой внешней библиотекой, если я не могу извлечь функцию PI из него).

Кто-либо с опытом в ffmpeg и.NET?

Обновление Просмотрите мой дальнейший вопрос, , как записать вход в выполнение ffmpeg процесс .

6
задан Community 23 May 2017 в 12:30
поделиться