.NET FFmpeg封装器用于视频播放

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是我找到的最接近的东西,但它也是不完整的(视频播放中没有音频)。

我相当确定稳定的专有包装器确实存在,因此我会向愿意分享代码或能够找到完整的第三方版本的任何人颁发奖励。


请查看SharpFFmpeg - Shimmy Weitzhandler
可能是用于C#/.NET的Solid FFmpeg封装程序的重复问题。 - Paŭlo Ebermann
实际上,这个更古老: 有人知道FFMPEG的C#绑定集吗? - Paŭlo Ebermann
6个回答

7

有一个很好的解决方案可以将FFmpeg绑定到C#中。使用FFmpeg.Autogen,它可以从以下链接获得: https://github.com/Ruslan-B/FFmpeg.AutoGen。 它还提供了下载源代码(并且带有预编译的32位和64位FFmpeg)的良好示例!


1
我自己使用了Ruslan的FFmpeg包装器,到目前为止这是我发现的最好的。如果您需要音频和视频播放,请尝试我的MediaElement实现(使用AutoGen)。源代码在此处可用:https://github.com/unosquare/ffmediaelement - Mario

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

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

1
  1. VLC软件包太大了。
  2. 它需要安装才能正常工作(与安装编解码器相同)。
- SharpAffair

1
我认为这样的东西不存在,而且说实话,ffmpeg API仍然有些不稳定,所以即使今天有符合您需求的东西,两年后也很可能无法正常工作/保持最新状态。此外,在托管代码和本地代码之间传递数据相对较昂贵。99%的情况下这并不重要,但在处理媒体(特别是未压缩的视频帧)时,它可能会对性能产生明显影响。
在我看来,从C#处理ffmpeg的最佳方法是使用C编写交互逻辑,并公开一个更高级别的API,可以从C#中调用p/invoke。即使有适当的低级别封装可用,这仍将是情况。

-1
“我相信稳定的专有封装是存在的。”
“去年晚些时候,我自己也花了很多时间寻找这样的封装,但没有成功。”

-4

目前还没有一个稳定的解决方案,因此最好的想法可能是等待有人完成它。


你不应该使用“等待某人完成”的说法。你应该说“我不知道,所以尽量深入挖掘”。 - Sorry IwontTell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接