2017-09-05 134 views
0

我試圖檢查360視頻性能與版本11.62465,當我們播放FHD @ 60P 360視頻時,360視頻輸出無法達到60P。視頻解碼將每14ms〜17ms更新視頻幀,但應用程序無法調用SbPlayerGetCurrentFrame()16ms,則發生丟幀。丟幀率接近20%。我試圖使用chrome:// tracing /檢查性能,發現有時光柵化器持續了40ms,CPU持續時間僅爲8ms,這是否意味着GPU能力不足?鈷渲染線程是否會被其他模塊阻塞?360視頻無法達到60P輸出

GPU Status

回答

0

如果每幀的CPU時間爲8ms,那麼它聽起來像GPU功能不夠強大來處理每個視頻幀的速度不夠快。 Cobalt渲染線程不應該被其他模塊阻塞,儘管可能值得仔細檢查SbPlayerGetCurrentFrame()的實現是否需要很長時間才能渲染(也許它會獲得一個鎖?)。

您可以在播放非360 FHD @ 60P視頻時使用chrome:// tracing /來檢查呈現器的性能,並將該性能與360視頻播放時的性能進行比較。這會告訴你渲染器的性能是否受到解碼到紋理處理的影響。

+0

感謝您的解釋。在我們的設計中,只有解碼到紋理將使用GPU進行渲染,沒有360的視頻將使用硬件視頻路徑。我們無法比較這一點。 我們將保存最新的視頻輸出幀,並且SbPlayerGetCurrentFrame()將立即得到最新的幀,而不會有任何鎖定。 我們正在檢查GPU性能。 –

+0

我們使用DS5檢查GPU加載,發現GPU總是100%運行,如前面的評論,我認爲瓶頸在GPU部分。順便說一下,如果我們想做FHD @ 60P渲染,有沒有關於GPU能力的建議? –

+0

您可以修改SbPlayerOutputModeSupported()以報告它僅支持解碼到紋理,以強制非360視頻使用解碼到紋理。但幾乎可以肯定的是,我認爲問題在於通過GPU單元傳輸的大視頻,無論它是否是360。 儘管我們正在考慮將這些信息傳遞給SbMediaCanPlayMimeAndKeySystem(),但還沒有辦法表明您無法呈現高分辨率的360視頻。 –