6
在.net中使用FFmpeg?
因此,我知道这是一个相当大的挑战,但是我想使用FFmpeg库在c#中编写一个基本的电影播放器/转换器。但是,我需要克服的第一个障碍是将FFmpeg库包装在c#中。我已经下载了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,它看起来像我想要的,所有功能都是P /为我调用的。但是它的GPL?AVCodec.cs和AVFormat.cs文件都看起来像avcodec.c和avformat.c的端口,我认为我可以自己移植?那就不用担心许可问题了。 但是我想在开始编程之前就弄清楚这一点。我是不是该: 编写我自己的C ++库以与ffmpeg进行交互,然后让我的C#程序与C ++库对话以播放/转换视频等。 要么 通过使用大量的DllImports将avcodec.h和avformat.h(是我所需要的吗?)移植到c#并将其完全用C#编写? 首先,考虑到我不太擅长C ++,因为我很少使用它,但我知道足够多,可以绕开它。我之所以认为#1可能是更好的选择,是因为大多数FFmpeg教程都使用C ++编写,并且与使用c#相比,我对内存管理的控制更多。 你怎么看?您还会碰巧有使用FFmpeg的任何有用链接(也许是教程)吗?