2011-01-25 13 views
4

我正在尋找一個會議a/v流式傳輸到服務器的庫,該服務器將多點傳送到所有其他客戶端。我已經看過SIP和openh323,並且這兩者對於voip電話都顯得過於專業化。跨平臺,用於C#/ Silverlight/.NET音頻/視頻實時流式傳輸的開放庫

我希望應用程序是一個跨平臺的Silverlight應用程序(mac和windows),所以我不認爲我可以使用DirectSound,對不對?

在此先感謝。

回答

3

你可能會在你的問題中混合蘋果和橘子。 DirectSound提供了一個訪問聲卡的API; H.323和SIP是發出呼叫的標準。

Silverlight 4本地提供了幾個簡化的API,大致等同於DirectSound,因此您可以訪問麥克風,聲卡和網絡攝像頭。有關詳細信息,請參見http://msdn.microsoft.com/en-us/library/ff602282(VS.95).aspx

但是,一旦您獲得了聲音,您仍然需要對其進行編碼,傳輸,混合,分發並接收它。這就是它變得複雜的地方。 Flash本身就支持所有這些; Silverlight沒有。現在最好的開源實現是由SocketCoder整合在一起的,可在CodePlex上找到,但它使用專有的信令/流協議,專有的非常低效的視頻編解碼器和專有的媒體服務器。

從我所知道的情況來看,在Silverlight中執行所需操作的最佳選擇是由StreamCoders提供的封閉源代碼解決方案。它不是開源的,但它支持一套合理的開放標準,這意味着您可能會使用第三方開源媒體服務器。當然,你需要測試以確保它是你需要的。

或者,您可以嘗試將任何各種開源解決方案移植到C#中。我已經用Speex預處理器完成了這個任務:這很複雜,但並不像您想象的那麼困難。你大概可以做一些類似於openH323和各種基於C編解碼器的東西。您甚至可以嘗試通過FluorineFx(http://www.fluorinefx.com/)修改Silverlight RTMP實現來執行您需要的操作。當然,這些都不是很簡單。