16

寻找可在 .NET 中使用的 FFmpeg 包装器。包装器必须支持带音频的视频播放。

以下项目是不完整的FFmpeg 包装器:

http://code.google.com/p/ffmpeg-sharp/

http://sourceforge.net/projects/sharpffmpeg/

http://sourceforge.net/projects/ffqlay/

http://www.ffmpeg-csharp.com/

http://www.intuitive.sk/fflib/post/fflib-net-released.aspx

ffmpeg-sharp 是我发现的最接近的东西,但它也不完整(视频播放中没有音频)。

我很确定确实存在稳定的专有包装器,因此我将奖励任何愿意共享代码或能够找到完整第三方版本的人。

4

6 回答 6

8

将 FFmpeg 绑定到 C# 中有一个很好的解决方案。使用来自: https ://github.com/Ruslan-B/FFmpeg.AutoGen的 FFmpeg.Autogen 。它还在下载源代码时提供了一个很好的示例(并且它带有用于 32 位和 64 位的预编译 ffmpeg)!

于 2013-12-14T21:54:41.877 回答
3

据我所知,没有通过 P/Invoke 从 C# 使用 ffmpeg 的干净方法,因此所有这些包装器都是不完整的项目。您可以做的是为ffplay.exe创建一个进程(在共享版本下下载)并将命令行参数传递给它。否则,我建议根据您的需要使用 WPF 或 Silverlight MediaElement;它对视频和音频播放等大多数基本任务有相当不错的支持。

于 2011-08-02T15:18:59.260 回答
2

你看过VLC 媒体播放器了吗?它是一个功能齐全的媒体播放器,使用 FFmpeg 项目中的编解码器。您可以利用它的核心功能,如果您想创建自己的, SourceForge 上有一个最近更新的包装器项目和The Code Project上的教程。我个人没有使用过其中任何一个,但它们看起来相当简单易用。

于 2011-07-16T17:07:46.563 回答
1

我不认为这样的事情存在,坦率地说,ffmpeg API 仍然有些不稳定,所以即使今天有一些东西可以满足您的需求,也有很大的机会在 2 年后它将不再工作/跟上日期。此外,在托管代码和本机代码之间封送数据的成本相对较高。99% 的时间这无关紧要,但在处理媒体(尤其是未压缩的视频帧)的情况下,它可能会对性能产生显着影响。

IMO the best way to deal with ffmpeg from C# is to write your interaction logic in C and to expose a higher level API that you can p/invoke to from C#. This would still be the case if there was a proper low level wrapper available.

于 2013-12-31T01:34:31.550 回答
0

我很确定确实存在稳定的专有包装器

去年年底,我花了很多时间自己寻找一个,但没有成功。

于 2011-08-02T16:30:32.997 回答
-4

目前,还没有稳定的解决方案,所以最好的办法可能是等到有人完成它。

于 2011-08-26T12:00:40.060 回答