2010-08-31 122 views
4

在我的項目中,我需要一個專用服務器,將流傳送到多個客戶端。如何開始在c/C++中實現視頻流服務器?

更具體地說,我有一個回調函數被調用來收集流數據,但不知道如何將它流式傳輸到其他應用程序。

什麼是最好的方式開始呢?

+0

您確定您希望在C/C++中完成它嗎?因爲我已將其作爲Web服務完成,我將能夠爲您提供幫助。 – ckv 2010-08-31 11:13:53

回答

0

我想你應該通過網絡套接字來檢查通信。

有一個在C++中沒有網絡的概念,所以你必須依靠你的系統API或庫(如Boost.Asio的舉例)你打算以流

+0

我知道套接字和管道都可以,但怎麼做? – user198729 2010-08-31 14:38:46

+0

例如,檢查boost.asio並開始發送一些文本數據。然後你必須定義一個協議並通過套接字發送你的圖像 – Nikko 2010-09-01 08:52:45

2

何種類型的視頻?

有一個名爲liveMedia的開源庫,可在http://www.live555.com處獲得。這個C++庫在LGPL下可用,併爲許多不同媒體類型實現RTSP,RTP/RTCP協議和有效載荷格式。有一個名爲DeviceSource IIRC的類,可以方便地將數據導入庫。有一個活躍的郵件列表,您應該能夠通過搜索檔案找到大量信息。

還有一堆例子試驗項目的闡述其流MPEG,MP3等

如果您選擇使用標準化的協議,你可能想在RTPRTSP閱讀起來。