在C#.NET项目中使用(ffmpeg)可执行文件
我正在尝试用c#NET为ffmpeg编写一个自定义包装器。我下载了多个版本,但似乎我将不得不使用带有.exe文件的版本在C#.NET项目中使用(ffmpeg)可执行文件,c#,.net,reference,ffmpeg,exe,C#,.net,Reference,Ffmpeg,Exe,我正在尝试用c#NET为ffmpeg编写一个自定义包装器。我下载了多个版本,但似乎我将不得不使用带有.exe文件的版本 ffmpeg.exe ffplay.exe ffprobe.exe 但是,我无法通过添加引用->浏览等来引用这些可执行文件 所以我现在要做的就是把它们作为一个文件添加。然后像使用命令行一样对它们运行命令 可能吗?或者有人有更好的主意 提前谢谢你的帮助。好的,我想好了。对于任何想为ffmpeg编写.NET包装的人。下载“共享”版本。将“bin”文件夹的内容(以及可执行文件)添加
ffmpeg.exe
ffplay.exe
ffprobe.exe
但是,我无法通过添加引用->浏览等来引用这些可执行文件
所以我现在要做的就是把它们作为一个文件添加。然后像使用命令行一样对它们运行命令
可能吗?或者有人有更好的主意
提前谢谢你的帮助。好的,我想好了。对于任何想为ffmpeg编写.NET包装的人。下载“共享”版本。将“bin”文件夹的内容(以及可执行文件)添加到项目中。只需右键单击您的解决方案->添加新项目 然后可以按如下方式使用可执行文件 您可以使用ffmpeg、ffprobe等。。以json或xml格式输出。因此,您可以解析输出并执行任何操作
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();
愉快的编码。嘿,是的,我知道ffmpeg csharp包装器。但我想编写自己的自定义包装。您可能应该下载开发版本的构建,然后在C++/CLI中创建一个低级包装,它将为您用C#编写的代码提供托管API。这并不是您所说的包装,而是一个启动ffmpeg可执行文件的程序。见@galenus对问题的评论。嗯,还没有。它将充当FFMPEG的C#NET包装,对吗?实现多种功能等。。我想你可以在这里使用这个术语。