2010-08-17 82 views

回答

0

單從信息流點,看來你已經有了2個主要選項:

  1. 的應用廣播流到多個客戶端。
  2. 每個應用程序在鏈中形成一個鏈接,並讀取並傳遞流。

選項1是更復雜的寫,但更強大的 - 你會有效地編寫一個視頻服務器,選2是容易實現,但如果鏈中的崩潰一個環節,之後,所有的客戶將失去視頻。

不幸的是,我不太瞭解Directshow格式給你一個例子,但在最基本的方面,你需要閱讀和重新傳輸流。

進程間通信可以通過多種方式完成,但它取決於您使用的編程語言 - 如果.Net,我會建議WCF。稍低一點的東西只需通過環回TCP/IP連接進行通信即可。

我會避免使用硬盤作爲你一)失去相當大的性能傳輸數據和b)捶打硬盤沒有什麼優勢

1

您可以捕獲流多個共享內存區域。這樣你可以在其他進程中看到這個內存的內容。

您必須實現某種進程間通信,以便您的其他進程獲知應該顯示哪個緩衝區。

當你編寫你自己的採樣卡時,這應該相對容易,甚至可以使用自己的內存分配器。這樣,你甚至不會受到一個副本的影響。也許Boost.Interprocess將幫助你實現這個系統,否則請參閱win32中的內存映射函數。

0

使用VLC通過HTTP進行流式傳輸。