2010-02-04 85 views
3

我在客戶端和服務器之間建立了自定義tcp連接。 我在做一個簡單的聊天程序。到目前爲止,用戶可以相互交談併發送文件。 我正在添加網絡攝像頭聊天功能,並使用AForge.Net從我的網絡攝像頭中抓取幀。但是將這些捕獲的幀從客戶端發送到服務器需要很長的時間,並且會佔用過多的帶寬。服務器每2〜4秒收到約1幀。從客戶端到服務器流式傳輸攝像頭的有效方法C#

我使用JPEG編碼器和質量設置爲30嘗試,但不提高任何

你們是否知道編碼發送到服務器的網絡攝像頭流的好方法嗎?

乾杯 羅馬

回答

1

您需要將攝像頭髮送的內容爲視頻數據流,而不是一系列的圖像。我會推薦H264,因爲它非常緊湊,是當今網絡上最常用的視頻編解碼器。編碼,流媒體,接收和顯示視頻並不簡單。有很多開源項目可以像X264和VLC一樣提供幫助,但這肯定比抓取jpgs和發送它們複雜得多。使用支持網絡攝像頭的現有視頻聊天組件會容易得多。 (我不是100%,但他們支持實時網絡攝像頭流 - 商業Adobe Flash媒體服務器肯定會這樣做)。使用RTMP服務器的Flash應用程序可以支持網絡攝像機,並且有許多開源/免費的RTMP服務器可用。 Flash視頻組件可以集成到另一個應用程序,無論是Windows還是Web。

+0

我對使用RTMP服務器不感興趣。我對學習曲線更感興趣。我已經看到了C#的幾個編碼器例子,但我不知道我怎麼能檢測到流寫入,所以我可以通過我的套接字連接發送新添加的編碼幀到服務器... – Smartie 2010-02-04 04:37:04