2017-09-05 129 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视频。 –