2015-02-07 32 views
1

我是Tommaso,我剛剛註冊了。我想打開一個新的討論,希望它可能會有趣。 我與熱像儀的工作(C#,Visual Studio的2012,Windows 7的-x64),我已經創建執行以下任務的服務器:工作站客戶端的c#熱圖像服務器流

  1. 從攝像機獲取原始幀
  2. 最終旋轉
  3. 將原始像素值轉換爲開爾文
  4. 計算幀中的最小,平均值和最大像素數
  5. 檢查溫度警報,報警。

現在我被要求允許4個工作站看到來自攝像機的實時熱幀流。不幸的是,在這個項目中,它們位於離主服務器很多米(600-700米)的廣闊區域。在3,75幀/秒,640×512像素的幀分辨率和14位(16)的像素深度時,我們正在談論每秒2.5兆字節。沒有提供壓縮。

所以我決定使用幀到達服務器創建一個套接字來監聽1或4個工作站需要的流。因此,每次客戶端連接時,我都會創建一個專用隊列,其中主線程將幀排入隊列中,並且套接字線程出隊並將其發送到連接的客戶端。

這裏是我的問題:由於單個幀的重要性,你建議使用可靠和最重的TCP或考慮流動量最簡單的UDP?

對不起,我只是爲了解釋。 如果你想了解更多關於我的項目,請詢問。

Tommaso

+0

需要考慮的一件事是您用於網絡的硬件。在過去的一些舊路由器和接入點上,我遇到了UDP問題。如果你有直接的聯繫,這不是一個問題,但如果你是聯網的話,它可能是。 – 2015-02-07 22:11:31

+0

謝謝你們。硬件是好的和專用的,所以穆斯塔法說我可能會使用Udp環境。 – riccio 2015-02-08 09:42:33

回答

1

您想要流式傳輸視頻。如果一幀沒有到達目的地,那就沒有問題了。因爲在250ms後(我假設你的視頻是4 fps),將會發送另一幀。由於每個幀都不是病毒,所以最好使用UDP。