跨平台C#Media API

我正在尝试在mono / .net对象中定义一个VideoFile,以便我可以调用

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

是否有一个库(操作系统或商业)可以跨平台mono / .net工作,可以提供VideoDuration等信息。 虽然我目前唯一的做法是包装ffmpeg.exe并读取控制台输出。

GStreamer是一个很好的选择,它是一个跨平台的多媒体框架。 并且有一些符合您需求的绑定:通过.NET API访问您需要的信息(video文件的长度): GStreamerSharp 。

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

顺便说一下,GStreamer的构建方式是编解码器是插件,因此你可以在它们的内部(即ffmpeg)之间进行抽象,其他插件可以根据你的许可/格式需求来实现。