寻找可在.NET中使用的FFmpeg包装器。包装器必须支持带有音频的视频播放。
以下项目不完整 FFmpeg包装器:
http://code.google.com/p/ffmpeg-sharp/
http://sourceforge.net/projects/sharpffmpeg/
http://sourceforge.net/projects/ffqlay/
http://www.intuitive.sk/fflib/post/fflib-net-released.aspx
ffmpeg-sharp是我发现的最接近的东西,但它也不完整(视频播放中没有音频)。
我很确定稳定的专有包装器确实存在,因此我将奖励给愿意分享代码或能够找到完整第三方版本的任何人。
答案 0 :(得分:8)
将FFmpeg绑定到C#有一个很好的解决方案。使用FFmpeg.Autogen来自: https://github.com/Ruslan-B/FFmpeg.AutoGen。 下载源代码时它也提供了一个很好的例子(它带有32位和64位的预编译ffmpeg)!
答案 1 :(得分:3)
据我所知,没有干净的方法可以通过P / Invoke从C#中使用ffmpeg,因此所有这些包装器都是不完整的项目。您可以做的是创建一个进程ffplay.exe(在共享版本下下载)并将命令行参数传递给它。否则我建议使用WPF或Silverlight MediaElement,具体取决于您的需求;它对大多数基本任务(如视频和音频播放)提供了相当不错的支持。
答案 2 :(得分:2)
你看过VLC Media Player了吗?它是一个全功能的媒体播放器,使用FFmpeg项目中的编解码器。您可以利用它的核心功能,如果您想创建自己的,SourceForge上有一个最近更新的包装器项目,The Code Project上有一个教程。我没有亲自使用其中任何一种,但它们看起来相当直接使用。
答案 3 :(得分:1)
我不认为这样的事情存在,坦率地说,ffmpeg API仍然有点不稳定,所以即使今天有一些东西满足你的需求,也有一个不可忽视的机会,2年后它将不再工作/成为保持最新。此外,在托管代码和本机代码之间编组数据相对昂贵。 99%的时间这无关紧要,但在您处理媒体(特别是未压缩的视频帧)的情况下,它会对性能产生明显的影响。
IMO处理来自C#的ffmpeg的最佳方法是在C中编写交互逻辑,并公开可以从C#调用的更高级别的API。如果有适当的低级包装器,情况仍然如此。
答案 4 :(得分:0)
去年年底,我花了很多时间自己找一个,没有成功。我很确定稳定的专有包装器确实存在
答案 5 :(得分:-2)
目前,没有稳定的解决方案,所以最好的想法可能是等到有人完成它。