【问题标题】:Building FFmpeg.NET .dll构建 FFmpeg.NET .dll
【发布时间】:2014-04-26 11:43:13
【问题描述】:

我需要在 C# 中使用一些 FFmpeg 函数(准确地说,在 GTK# 中)。所以我下载了包装器FFmpeg.NET。之后我尝试构建FFmpeg.NET.2008.sln(参考:我将在Visual Studio 2008中构建dll,但将在GTK#中使用),然后得到以下错误:

错误 1 ​​错误 PRJ0019:工具从“执行”返回错误代码 Makefile 项目操作" FFMpeg.NET
错误 2 引用的程序集 "C:\Users\Zhenya\Documents\ffmpegdotnet-94877\bin (调试共享)\ffmpeg.net.dll”没有找到。如果这个程序集是 由您的另一个项目制作,请确保构建 构建这个项目之前的那个项目。

如何解决这些问题? 或者如何正确构建这个包装器来获取 .dll?

【问题讨论】:

  • 仅供参考,实现最终目标可能更容易,但从 C# 代码中调用 ffmpeg.exe。
  • @evanmcdonnal 会跨平台吗?
  • 可以的。您只需在输出目录中包含各种版本的 ffmpeg。你打算在单声道上运行吗?
  • @evanmcdonnal 我现在打算在 gtk# 中使用它,之后我将在 xamarin.ios 和 xamarin.android 中使用它。
  • 好吧,我不知道其中任何一个该死的事情,但简短的回答是,如果有可用的该运行时的程序集,那么是的,它将在那里工作。

标签: c# .net dll build ffmpeg


【解决方案1】:

.NET 的 FFmpeg 包含非常旧版本的 ffmpeg。我直接使用ffmpeg.exe。例如

    void RunFfmpeg()
    {
        ffmpegProcess = new Process
            {
                EnableRaisingEvents = true,
                StartInfo =
                    {
                        FileName = GetFfmpegPath(),
                        Arguments = ffmpegParams.ToString(),
                        UseShellExecute = false,
                    },
            };
        ffmpegProcess.Start();
        ffmpegProcess.BeginOutputReadLine();
        ffmpegProcess.WaitForExit();
    }

【讨论】:

  • 是否跨平台?
  • 如果 UseShellExecute = false 看不到任何问题 但是我只在 Windows 中测试过
猜你喜欢
  • 2010-09-20
  • 2013-05-20
  • 1970-01-01
  • 2017-03-19
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
相关资源
最近更新 更多