8 c# linux ffmpeg libavcodec asp.net-core
我有项目(ASP.NET Core,在 Linux 上),其中有几个任务与视频转换和从视频文件中提取帧有关。
我考虑了两种可能的选择:
ffmpeg
控制台实用程序P/Invoke
与libavcodec
图书馆和其他人,其ffmpeg
用途第二种选择更难,可能非常不切实际,因为它提醒我开发新的包装器/库,而不是使用现成的产品。
我已经完成了谷歌搜索,但没有针对 Linux 平台上的 C#/ASP.NET Core 做好的项目。有一些适用于 C++ 和 Python,但不适用于 Linux/.NET Core 上的 C#。
我决定看第一个选项,我认为它会更容易和实用。但是,也有一些薄弱的地方,这会产生很多问题。我们理解(我想),使用第一个选项,最终开发人员应使用进程分叉。因此,进程空闲和其他可能的问题可能存在问题......
我问的是你的做法,因为这是我第一次在 Linux 平台上使用 C# 进行视频转换/采样。我已经在 Windows 平台上使用了Expression Encoder .NET 库,但它是另一回事,现在没有任何意义。
可能还有其他选项,我目前看不到。我不喜欢第一个选项,因为可能存在未处理的异常,因为ffmpeg
这样的角色成为 ASP.NET Core 后端的黑匣子。
我遇到了同样的问题,我创建了自己的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 函数是一件了不起的事情
归档时间: |
|
查看次数: |
7687 次 |
最近记录: |