场景描述:

1.无GPU,只有CPU算力

2.主要的任务有视频流采集(1080p的数据源)&播放(播放窗口约为1/4屏幕)、虚拟屏幕订阅主屏数据。

3.主屏分辨率为1080P。

问题描述:

在进行视频流播放时,播放界面会偶有花屏现象。在此时使用Rosen::ScreenManager::GetInstance().CreateVirtualScreen生成虚拟屏幕取订阅主屏数据,或者使用Rosen::DisplayManager::GetInstance().GetScreenshot以截图方式获取主屏数据,会极大地加重花屏现象,如下图所示,录像见附件

原因分析:

通过top可以看到花屏时,render_service所在核的占用率基本达到百分之一百,所以怀疑是render_serivice来不及合成导致播放组件掉帧。

诉求:

如果是硬件瓶颈,是否有办法让render_service可以多利用一些CPU资源;或者如果仅仅只是render_service来不及合成,有没有办法通过优化media_service的采集播放,和render_service的渲染参数来使得花屏不那么严重。

在针对cpu渲染合成这一点上,有没有什么专业的办法能够提高合成效率。

相关文件下载
video.zip
67.08 MB
下载
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐