2011-11-21 76 views
4

我试图定义一个单声道的录像档案/ .NET对象,这样我可以叫跨平台的C#媒体API

var file = new VideoFile(filepath); 
file.VideoDuration 

是否有一个库(OS或商业),这将跨平台单工作/ .net可以提供诸如VideoDuration之类的信息。目前唯一的做法是打包ffmpeg.exe并将控制台读取出来。

+1

如果你最终要去换包装FFMpeg路线这个问题/答案可能对你有用:固体FFmpeg包装的C#/。NET - http://stackoverflow.com/questions/2163036/solid-ffmpeg-wrapper- for-c-net – robowahoo

回答

6

GStreamer是不错的选择,它是一个跨平台的多媒体框架。还有一些可以满足您需求的绑定:通过.NET API访问您需要的信息(视频文件的长度):GStreamerSharp

事实上,我们实际上在用C#编写的媒体播放器(这是Ubuntu中捆绑的默认音乐播放器)Banshee Project中使用它。

顺便说一句,GStreamer是以一种编解码器为插件的方式构建的,因此您可以根据您的许可/格式需求在其内部插件(即ffmpeg)之间进行抽象。

+0

你是说比女妖仍然使用Gstreamer Sharp现在?我将一个Windows客户端应用程序移植到Linux上的mono,我正在寻找一个解决方案来播放短音频文件。 GStreamer夏普会做到这一点? –

+0

是的,Banshee在Windows上使用GStreamerSharp,并且很快会在Linux上默认GStreamerSharp。 – knocte