2009-05-28 42 views
-1

前一段時間,我開始在我需要做以下事情的一個項目:用於GUI應用程序中視頻播放的多媒體框架?

  • 播放視頻:
    • 在任何通用格式(AVI,MPEG,XVID等)
    • 能夠以編程方式暫停和重新定位流。
    • 可以設置播放速度(不是強制性的,但希望)
  • 讓我畫自定義圖形(保持同步視頻)在播放組件。
  • 允許訪問當前幀作爲光柵圖像(這不是強制性的,但是可取的)。

而且也很容易使用(例如,面向可視組件,我不想處理多媒體流內部)。因爲我已經有了一些用Java編寫的相關代碼,所以我嘗試了所有我找到的Java庫(JMF,FMJ,JVLC,Jffmpeg,gstreamer-java),但沒有人滿足我所有的硬性要求(例如,那些讓我畫出框架的東西不能被暫停或重新開始,那些功能全面的已經過時了,等等),所以我把這個項目擱置了。

現在我處於復出的心情,我不會介意用其他語言(等於或高於Java的等級)重寫代碼,但請不要C或C++,我已變得太懶惰:-p),它也具有良好的GUI框架或Rich Client Platform。多平臺是一個很好的觀點,因爲我喜歡在Linux中進行開發和測試,但是我想要接觸更多的觀衆,所以能夠定位Windows是必須的。

那麼你會推薦我什麼語言和框架?

回答

2

我會使用OpenCV庫。 有你需要的所有功能:格式支持,任何取幀,幀修改等。 看看這個installation guide和一些樣品。

0

你說你試過gstreamer-java。也許它的綁定並不是那麼好?我很確定Gstreamer可以做你所要求的一切。也許你應該檢查一下Python綁定。 Python是Gstreamer開發人員的頭等公民,因此綁定應始終保持完整且最新。

Python也有多個可用的跨平臺GUI框架。就我個人而言,我喜歡使用libglade的GTK,因爲使用glade構建GUI非常容易,並且它的XML文件(並且GTK也在Windows上運行,所以沒有問題)。如果你更喜歡別的東西,那麼就有Qt,wxWidgets和Tk,所有這些都可以在Linux和Windows上運行(並且我也假設爲MacOSX)。

+0

我認爲gstreamer-java不允許重新定位數據流(或者可能會暫停)...我沒有這裏的源代碼,但我會在本週末檢查它以提供更多詳細信息關於每個框架失敗的原因。 – fortran 2009-06-02 20:18:06

1

你可能會考慮的另一個框架是MLT框架:http://mltframework.org/

它有一個偉大的設計,用C語言編寫,並使用痛飲的語言綁定(Java,Perl,PHP,Python和Ruby,TCL)。我知道人們在大多數主要平臺上運行它。

要了解它的能力,請查看非常棒的NLE kdenlive,它是最活躍的用戶。

0

的嵌入式Web瀏覽器將處理你們所要求的:

  • 視頻播放(使用MPlayer的或VLC插件)
  • 高級語言來控制播放(JavaScript的)
  • 覆蓋/ GUI( HTML + CSS + PNG/SVG)

光柵當前幀將更難,你可能需要一些定製的ffmpeg轉儲幀到磁盤,然後讀回在作爲< img>

3

如果你不是完全害怕去Windows,WPF應該回應幾乎所有的需求,即使不是全部。

您可以將它與C#和所有.net語言一起使用。