[請益] unity中即時網路連續傳送texture的方式

作者: doasgloria (青柳立夏)   2021-03-02 15:49:04
各位大大好
最近小魯在嘗試用socket
將unity的webcamtexture即時傳送到另一台電腦
(電腦對電腦成功的話未來想嘗試用手機對手機)
目標暫時為demo而已 會使用區域網路
使用unity的原因是因為之後這功能會配合一些其他unity特效~
作者: newyellow (newyellow)   2021-03-02 17:04:00
說不定可以參考古早電視的做法?分開送單數列和雙數列
作者: doasgloria (青柳立夏)   2021-03-02 17:18:00
意思是說 一張圖真的沒辦法用單一筆資料傳送囉QQ這樣就得設計傳送跟接收的模式了~~
作者: oopFoo (3d)   2021-03-02 17:21:00
你有設Socket.ReceiveBufferSize?如果沒有你需要檢查recvLen然後loop把資料讀完。
作者: LayerZ (無法如願)   2021-03-02 21:27:00
update裡面做的話,每frame裡面資料還沒傳完就更新然後炸
作者: damody (天亮damody)   2021-03-02 21:31:00
請用串流壓縮
作者: oopFoo (3d)   2021-03-02 22:33:00
https://reurl.cc/9Zv1ex你需要檢查totalSize 跟 recvLen。
作者: newyellow (newyellow)   2021-03-03 00:00:00
如果只是想要單純塞在一筆資料裡 應該也是可以但如果你不是一次性傳送檔案 而是想串流的話那重點應該就是每個 frame 的網路流量限制的問題為什麼當初電視會分單雙數列 就是因為頻寬不夠
作者: doasgloria (青柳立夏)   2021-03-03 09:15:00
oo大的方法確實查出問題了 發送端顯示出去的每筆資料都是固定長度 但是接收到的每筆都是不同的 比較小統計接收到的資料筆數也比發送的多的樣子這是由於網路品質造成的還是軟體可以設定優化呢QQ
作者: oopFoo (3d)   2021-03-03 10:16:00
Socket就是這樣。ReceiveBufferSize可以加大,不過加大有加大的問題。你在Windows上可以考慮用IOCP不要用Socket,效能好很多,也是未來的趨勢。640x480x3x60幀,每秒50+MB的資料,GB網卡是ok,但可考慮轉成jpeg再傳送,資料小很多。
作者: doasgloria (青柳立夏)   2021-03-03 12:16:00
可是之後可能要轉移平台到手機上 Q_Q 應該還是得用現在方式去慢慢弄 現在可以完整顯示每一frame了只是會lag 不過只是我在合併資料慢造成的~~ 真感謝OO大 !!^0^
作者: darkflier (我很懶)   2021-03-06 04:13:00
用udp傳,然後記得壓縮圖檔,一包不要超過64k超過要分割

Links booklink

Contact Us: admin [ a t ] ucptt.com