我试图创建使用ffmepg媒体文件转换一个.NET包装,这里是我已经试过:从.NET程序与ffmpeg交互?
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,但他仍然知道转换进度的细节以及应用程序达到的百分比等。
基本上,我也会很满意P/Invoke转换函数的.NET包装器(我对整个外部库不感兴趣,除非我可以从中提取PI函数)。
任何有经验的人ffmpeg & .NET?
更新 请查看我的另一个问题,how to write input to a running ffmpeg process。
没有使用StringBuilder sb。 –
@aaaa bbbb:删除,谢谢。它仍然从以前的尝试,无论如何,我添加了一些重要的功能,我的答案。 **你能否看看[这](http://stackoverflow.com/questions/7296901)**? – Shimmy