在C#.NET项目中使用(ffmpeg)可执行文件

在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”文件夹的内容(以及可执行文件)添加

我正在尝试用c#NET为ffmpeg编写一个自定义包装器。我下载了多个版本,但似乎我将不得不使用带有.exe文件的版本

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包装,对吗?实现多种功能等。。我想你可以在这里使用这个术语。