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

标签 c# .net reference ffmpeg exe

我正在尝试在 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();

快乐编码。

关于c# - 在 C#.NET 项目中使用 (ffmpeg) 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26583828/

相关文章:

c# - 如何将 PresentationFramework 加载到我的 xUnit 测试中?

c# - 在 .NET 中播放 .WAV 文件

c# - 如果从 catch block 中抛出异常,什么时候最终运行?

c# - 取消 Hook 事件时检测到 FatalExecutionEngineError

.NET:大型堆对象何时被垃圾回收?

javascript - 对象未通过引用传递(CoffeeScript)

c# - "using"命名空间声明中的语句位置

c# - .NET 中不同线程之间共享的列表

c# - 序列化不接受我的 KnownTypeAttribute,为什么?

java - 如果我在 t2 分配给 t1 时设置 t1=null 会发生什么?