Я пытаюсь создать оболочку .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 выводится в консольное приложение, но переменная result
является пустой строкой.Я хочу контролировать ход конвертации в интерактивном режиме, чтобы пользователю даже не нужно было знать, что я использую ffmpeg, но он все еще знает подробности прохождения конверсии, а также процент и т. Д., До какого приложения.
По сути, я также был бы доволен оберткой .NET для функции преобразования P / Invoke в ТОЛЬКО (меня не интересует целая внешняя библиотека, если я не могу извлечь из нее функцию PI).
Любойс опытом работы в ffmpeg & .NET?
Обновление Пожалуйста, просмотрите мой следующий вопрос, как записать ввод в работающий процесс ffmpeg .