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

时间:2014-10-27 08:46:57

标签: c# .net reference ffmpeg exe

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

ffmpeg.exe
ffplay.exe
ffprobe.exe

但是,我无法通过添加引用来引用这些可执行文件 - >浏览等..

所以我现在要做的就是将它们添加为文件。然后就像使用命令行一样在它们上运行命令。

这可能吗?或者也许有人有更好的主意?

提前感谢您的帮助。

1 个答案:

答案 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();

快乐的编码。