我正在尝试在c#.NET中为ffmpeg编写一个自定义包装器。我下载了多个版本,但似乎我将不得不使用带有.exe文件的版本。
ffmpeg.exe
ffplay.exe
ffprobe.exe
但是,我无法通过添加引用来引用这些可执行文件 - >浏览等..
所以我现在要做的就是将它们添加为文件。然后就像使用命令行一样在它们上运行命令。
这可能吗?或者也许有人有更好的主意?
提前感谢您的帮助。
答案 0 :(得分:3)
好的,我明白了。对于任何想要为ffmpeg编写.NET包装器的人。下载“共享”版本。将“bin”文件夹(包含可执行文件)的内容添加到项目中。只需右键单击您的解决方案 - >添加新项目......
然后您可以按如下方式使用可执行文件。
你可以在json或xml中输出ffmpeg,ffprobe等。所以你可以解析输出并做任何事情。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ffmpeg\\ffmpeg.exe");
startInfo.Arguments = "-f dshow -i video=\"Front Camera\"";
startInfo.RedirectStandardOutput = true;
//startInfo.RedirectStandardError = true;
Console.WriteLine(string.Format(
"Executing \"{0}\" with arguments \"{1}\".\r\n",
startInfo.FileName,
startInfo.Arguments));
try
{
using (Process process = Process.Start(startInfo))
{
while (!process.StandardOutput.EndOfStream)
{
string line = process.StandardOutput.ReadLine();
Console.WriteLine(line);
}
process.WaitForExit();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
快乐的编码。