2010-12-13 157 views
2

我正在構建一個用於教室環境的交互式語言學習應用程序。這個想法是,老師應該能夠與學生交談(=所有學生的音頻流),讓學生以兩個或兩個以上的小組相互交談(=音頻P2P),讓學生觀看來自DVD播放器或來自媒體服務器。應該可以保存音頻/視頻流。教師還應該能夠監視,接管或阻止學生的桌面。該平臺是Windows,它是一個桌面應用程序,沒有Web應用程序。音頻延遲應該儘可能小。可選擇坐在家中的學生應該得到支持,但不是高優先級。Windows平臺上的音頻/視頻流

我現在完成了應用程序的課堂控制部分(登錄,監控,塊,...),並希望開始音頻和視頻部分。我一直在評估DirectX,GStreamer和SIP等幾個選項,但現在我必須做出決定。

的DirectX似乎針對Windows平臺的不二之選,但它只是讓我捕捉和播放音頻和視頻。編碼/解碼/網絡部分我應該自己做。

的GStreamer包含了各種選項,以捕捉/編碼/流/保存音頻和視頻流。我已經嘗試了一下它(ossbuild)和它似乎涉及大量的試驗和錯誤,使一些工作: - 麥克風捕獲(通過directsoundsrc)產生在某些計算機 開裂的聲音 - rtpL16裝貨沒有工作以及 - 流在網絡上的原始音頻僅在8000的採樣率,沒有更高的 工作 - 有很多接收MPEG4視頻(壞I幀)時的錯誤,就比其他一些 糟糕的電腦我的印象gstreamer主要針對Linux平臺。對Windows平臺的開發和支持似乎有點落後。不過,這是一個強大的框架,可以爲我節省數月和數年的工作。

SIP似乎是能夠做一切我想要的,但其目標是電話和IM。我不知道SIP有多靈活。在我看來,由於我已經有了一個可以控制和設置所有流的中央(教師)應用程序,所以SIP層將會開銷很大。像opalvoip和freeswitch這樣的框架的有趣部分是實際的音頻/視頻捕獲,編碼和傳輸。有沒有人知道這些有趣的部分如何與gstreamer這樣的框架相關?它們是否易於集成到自定義應用程序中?它們足夠靈活嗎?

有沒有人有這些技術的全部或其中之一的經驗?也許還有其他選擇,我可以看看?

非常感謝您的建議

回答

0

您有很多選擇可能適合您。 首先你可以使用Media Foundation http://msdn.microsoft.com/en-us/library/ms697062%28v=VS.85%29.aspx這個鏈接一些頂級的介紹。您可以使用API​​來管理源解碼器和代碼轉換器。它提供了抽象的和低級的接口來滿足需要。 其他選項是使用WPF mediaelement,這個鏈接給出了一些關於如何使用它的指針http://www.silverlightshow.net/items/Two-Great-WPF-Video-Samples-Online.aspx。 您還可以查看出的Silverlight 5 http://www.microsoft.com/silverlight/future/的瀏覽器功能,其目前處於測試階段,預計將於2011年下半年