使用WebRTC +畫布構建運動探測器js library。 當我運行應用程序,我立即得到非常高的CPU使用率。 我優化了循環等,但基本問題似乎是訪問攝像頭,例如WebRTC。WebRTC性能 - 非常高的CPU負載
有沒有辦法讓WebRTC表現更好?也許是另一種配置?還是有我失蹤的東西?這可能是我處理錯誤的一些js內存泄漏嗎? 我在做什麼錯?
您可以檢查另一個演示here具有相同的lib
,並使用WebRTC技術的不同之一,可與同樣的問題here
使用WebRTC +畫布構建運動探測器js library。 當我運行應用程序,我立即得到非常高的CPU使用率。 我優化了循環等,但基本問題似乎是訪問攝像頭,例如WebRTC。WebRTC性能 - 非常高的CPU負載
有沒有辦法讓WebRTC表現更好?也許是另一種配置?還是有我失蹤的東西?這可能是我處理錯誤的一些js內存泄漏嗎? 我在做什麼錯?
您可以檢查另一個演示here具有相同的lib
,並使用WebRTC技術的不同之一,可與同樣的問題here
演示看起來像它通過檢查視頻圖像的像素不運動檢測。它似乎將其渲染爲畫布,然後檢索畫布圖像數據。
這很慢,因爲這只是一個緩慢的事情 - 有很多像素,幀快速通過,這是一個高CPU工作。由於JavaScript在這類數據量大的處理中並不總是非常有效,因此情況變得更糟。所以我不認爲WebRTC的速度是慢的。這只是沉重的JavaScript。
您是否嘗試過使用Web Workers進行計算?
有一個demo using web workers for motion tracking(僅限Firefox)。本演示中CPU使用率似乎很高,但工作人員報告的fps遠遠超過視頻的幀率,因此嘗試將工作人員限制在30fps可能會有一些好處。
我已經在http://iambrandonn.github.com/WebcamSwiper上測試過這個演示,並且它沒有使用超過20%的CPU時間。我認爲你應該記住WebRTC遠沒有生產準備 - API和底層協議都在發生重大變化。您是否在每個瀏覽器中或僅在特定的瀏覽器上獲得高CPU負載? – Makkes
你測試了另一個嗎?我也只能在chrome 22中測試,因爲這是在其他瀏覽器中實現的。 – alonisser
getUserMedia現在可用於Firefox Aurora/Nightly和Opera - 可以很好地測試這些。 (有關適用於所有三種平臺的演示,請參閱www.simpl.info/gum。)Ericsson Bowser移動瀏覽器還實施WebRTC,包括gUM。另外,爲了迂迴,請注意「WebRTC」用於表示gUM,而WebRTC實際上是整個實時通信瀏覽器項目,包括RTCPeerConnection和DataChannel。沒有所有三個API,都有Web,但沒有RTC! gUM只是獲取流數據的部分。 –