在 Linux 上如何更好地将 ffmpeg 与 ASP.NET Core 一起使用?

8 c# linux ffmpeg libavcodec asp.net-core

我有项目(ASP.NET Core,在 Linux 上),其中有几个任务与视频转换和从视频文件中提取帧有关。

我考虑了两种可能的选择:

  1. 使用ffmpeg控制台实用程序
  2. 通过P/Invokelibavcodec图书馆和其他人,其ffmpeg用途

第二种选择更难,可能非常不切实际,因为它提醒我开发新的包装器/库,而不是使用现成的产品。

我已经完成了谷歌搜索,但没有针对 Linux 平台上的 C#/ASP.NET Core 做好的项目。有一些适用于 C++ 和 Python,但不适用于 Linux/.NET Core 上的 C#。

我决定看第一个选项,我认为它会更容易和实用。但是,也有一些薄弱的地方,这会产生很多问题。我们理解(我想),使用第一个选项,最终开发人员应使用进程分叉。因此,进程空闲和其他可能的问题可能存在问题......

我问的是你的做法,因为这是我第一次在 Linux 平台上使用 C# 进行视频转换/采样。我已经在 Windows 平台上使用了Expression Encoder .NET 库,但它是另一回事,现在没有任何意义。

可能还有其他选项,我目前看不到。我不喜欢第一个选项,因为可能存在未处理的异常,因为ffmpeg这样的角色成为 ASP.NET Core 后端的黑匣子。

J. *_*Doe 0

我遇到了同样的问题,我创建了自己的FFMPEG基于的最小包装器FFmpeg.AutoGen。包装器在 Linux 上运行良好,但这种方式需要更多时间来理解FFMPEG库如何工作

不久前,为了进行测试,我还创建了您的第一个选择new Process()。这种方式的优点是简单

        Process process = new Process();
        process.StartInfo.FileName = "ffmpeg.exe";
        process.StartInfo.Arguments = "example arguments";
        process.Start();
Run Code Online (Sandbox Code Playgroud)

您需要自己决定,但请记住 - 在 C# 中调用 C 函数是一件了不起的事情