2011-11-21 78 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