我一直在努力實現的網絡應用程序將能夠處理以下情形:流攝像頭使用socket.io
- 視頻流/從客戶機到其他客戶端(實際上是一組特定的人聲音,無廣播)和服務器。數據源將是客戶端的網絡攝像機。
- 此流數據必須實時顯示在其他客戶端的瀏覽器和上以保存在服務器端用於「歸檔」目的。
- 它必須在node.js + socket.io環境中實現。
把它放在一些更具體的上下文中......場景是有一個人爲他選擇的用戶提供了一種空間。選定的用戶加入房間後,創作者開始從他/她的內置設備(網絡攝像頭)流式傳輸視頻/音頻。所有的客人都會實時接收數據,而且數據正在被髮送到服務器,並在數據流和房間關閉後進行恢復。
我在考慮將Socket.IO與WebRTC混合使用。從理論上講,這兩者的結合似乎恰恰適合這項工作。 Socket.IO非常適合通過爲一個房間分配一些套接字並收集WebRTC要求的信令過程來收集特定用戶集合。 與此同時,WebRTC對於聚集在同一房間中的用戶之間的P2P連接來說非常棒,訪問攝像頭和其他可能想使用的內置設備也非常簡單。
所以是的,理論上所有的東西看起來相當不錯,但是我真的需要看到一些代碼,所以我可以嘗試自己實現它。此外,我看到一些問題:
- 如何保存由P2P連接發送的流?很顯然,服務器無法訪問。我在想,我可能把服務器當作另一個「客戶」,所以它只是與房間創建者建立P2P連接的另一個端點。但不知何故,它感覺前衛。
- 將服務器視爲創作者與客戶之間的中間人不是更好嗎?與P2P相比,有一點可能會延遲一些,但可能並不重要,但可能對所有客戶端來說都是一樣的。 (我試過,但我不能從攝像頭到完成服務器的流,這不過是因爲我有處理MediaStream問題,爲不同的問題的話題)
我一直在尋找一些不錯解決方案但沒有任何成功。我已經看到,有一個很好的P2P解決方案爲socket.io製作:http://socket.io/blog/socket-io-p2p/。事情是 - 我認爲它不會很好地處理數據流。這些例子只提到簡單的聊天應用程序,我需要一些比這更重要的東西。
我會非常感謝一些具體的例子,文檔,不管怎樣可能導致我更接近實施它,因爲我真的不知道如何處理它。
感謝提前:)