首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在.net中使用FFmpeg?

在.net中使用FFmpeg?
EN

Stack Overflow用户
提问于 2010-03-27 10:55:55
回答 5查看 141.7K关注 0票数 70

所以我知道这是一个相当大的挑战,但是我想用FFmpeg库用c#写一个基本的电影播放器/转换器。但是,我需要克服的第一个障碍是在c#中包装FFmpeg库。我已经下载了ffmpeg,但无法在Windows上编译,所以我为自己下载了一个预编译版本。好的太棒了。然后我开始寻找C#包装器。

我环顾四周,发现了一些包装器,如SharpFFmpeg (http://sourceforge.net/projects/sharpffmpeg/)和ffmpeg-sharp (http://code.google.com/p/ffmpeg-sharp/)。首先,我想使用ffmpeg-sharp,因为它的LGPL和SharpFFmpeg是GPL。然而,它有相当多的编译错误。原来它是为mono编译器编写的,我试着用mono编译它,但不知道如何编译。然后我开始自己手动修复编译器错误,但遇到了一些可怕的错误,我想我最好不要去管它们。所以我放弃了ffmpeg-sharp。

然后我看了看SharpFFmpeg,它看起来就是我想要的,所有为我调用的函数。但是它的GPL呢?AVCodec.cs和AVFormat.cs文件看起来都像是avcodec.c和avformat.c .c的端口,我想我可以自己移植。这样就不必担心许可问题了。

但我想在开始编码之前弄清楚这一点。我应该:

  1. 编写我自己的C++库来与ffmpeg交互,然后让我的C#程序与C++库对话,以便播放/转换视频等。

  1. 端口avcodec.h和avformat.h .h(这就是我需要的全部内容吗?)通过使用大量的DllImports并完全用c#编写来实现C#?

首先,考虑到我对C++不是很在行,因为我很少使用它,但我知道足够多的东西。我认为#1可能是更好的选择,因为大多数FFmpeg教程都是用C++编写的,而且与使用c#相比,我对内存管理也有更多的控制。

你认为如何?另外,您是否碰巧有任何有用的链接(可能是教程)来使用FFmpeg?

EN

回答 5

Stack Overflow用户

发布于 2015-06-16 02:24:21

原来的问题现在已经有5年多的历史了。同时,现在有来自ffmpeg的WinRT解决方案和来自Microsoft的集成示例。

票数 30
EN

Stack Overflow用户

发布于 2010-03-29 20:51:22

其他一些托管包装器,可供您查看

在.NET中编写自己的互操作包装器可能是一个既耗时又困难的过程。为互操作编写C++库有一些优点-特别是它允许您极大地简化C#代码的接口。但是,如果您只需要库的一个子集,那么在C#中进行互操作可能会使您的工作更轻松。

票数 27
EN

Stack Overflow用户

发布于 2017-09-27 15:30:17

您可以使用此nuget包:

代码语言:javascript
复制
Install-Package Xabe.FFmpeg

我正在努力使其易于使用,跨平台的FFmpeg包装器。

有关这方面的更多信息,请访问Xabe.FFmpeg

更多信息,请访问documentation

转换很简单:

代码语言:javascript
复制
var conversion = await FFmpeg.Conversions.FromSnippet.ToMp4(Resources.MkvWithAudio, output);
await conversion.Start();
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2527963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档