14.Profiler窗口Video

14.Unity性能分析工具-Profiler窗口Video


14.1 知识点

Video是什么

Video(视频)模块是专门用于分析游戏中视频播放性能和资源使用情况的监视工具,主要作用是帮助我们排查和视频相关的问题。

在游戏中如果出现以下问题时,可以着重观察这里的内容:

  1. 视频播放卡顿、丢帧
  2. 视频延迟播放、没声音或黑屏
  3. 视频导致 CPU 性能下降
  4. 视频占内存过高
  5. 等等

总之,几乎所有和视频相关的问题,我们都可以通过该模块进行排查。

Video中各参数功能的含义和作用

视频(Video)分析窗口

  • Total Video Sources:场景中视频源的总数。判断是否创建了过多视频播放器组件
  • Playing Video Sources:场景中正在播放的视频源数量。判断是否有视频未正确开始播放
  • Pre-buffered frames:预缓冲帧的总数。帧数太少可能会导致播放卡顿
  • Total Video Memory:应用程序中的视频所使用的系统内存量。如果持续增长,说明未释放视频资源或分辨率过高

一帧下详细参数

  • Total Video Sources:场景中视频源的数量。判断是否创建了过多视频播放器组件
  • Playing Video Sources:场景中正在播放的视频源数量。判断是否有视频未正确开始播放
  • Paused Video Sources:暂停的视频源的数量
  • Software Video Playback(软解码视频播放回调数):平台本身不支持播放的视频的数量,性能瓶颈关注重点。软件解码会占用大量 CPU,移动端尤其要避免
  • Pre-buffered frames(预缓冲帧的总数):帧数太少可能会导致播放卡顿
  • Pre-buffered frame limit(预缓冲帧限制):Unity 最多可为每个剪辑缓冲 16 帧。通常固定值,无需修改
  • Total frames dropped(丢帧总数):为了保持实时性,Unity 必须跳过的帧数。应用程序运行缓慢且无法足够快地生成帧来实时播放时,就可能会发生这种跳帧的情况。播放卡顿判断关键指标:数量持续增长说明播放不流畅
  • Video Clip Count:场景中视频剪辑的数量
  • Total Video Memory(总视频内存):应用程序中的视频所使用的系统内存量。如果持续增长,说明未释放视频资源或分辨率过高

Video对于我们的意义

Video(视频)模块可以帮助我们:

  1. 排查视频卡顿的原因
    关注 Total Frames Dropped(丢帧总数)、Software Video Playback(软解码视频播放回调数)。如果 Dropped(丢弃)值持续增长说明视频播放性能不足。如果 Software Video Playback(软解码视频播放回调数)不为 0,证明当前视频编码格式不被硬件支持,建议改为 H.264(mp4)

  2. 排查视频不播放或者无画面
    Playing Video Sources(播放中的视频源数量)为 0 说明视频未启动。但 Total Video Sources(总视频源)> 0,可能没调用 Play() 或由于平台限制无法播放

  3. 排查内存是否泄漏或者复用不当
    关注 Video Clip Count(视频剪辑数量)和 Total Video Memory(总视频内存)。视频切换多次后 Video Clip Count(视频剪辑数量)持续上升,证明没有释放销毁。内存持续上升说明视频未释放或帧缓存堆积

  4. 播放有延迟或启动缓慢
    关注 Pre-buffered Frames(预缓冲帧的总数)。缓冲帧太少,说明视频太大 / 帧率太高 / Streaming 设置不合理

  5. 等等

总之,该模块就是保障视频流畅播放体验的利器。


14.2 知识点代码

Lesson14_Unity性能分析工具_Profiler窗口Video.cs

public class Lesson14_Unity性能分析工具_Profiler窗口Video
{
    #region 知识点一 Video是什么

    /*
     * Video(视频)模块
     * - 专门用于分析游戏中视频播放性能和资源使用情况的监视工具
     * - 主要作用是帮助我们排查和视频相关的问题
     *
     * 在游戏中如果出现以下问题时,可以着重观察这里的内容:
     * 1. 视频播放卡顿、丢帧
     * 2. 视频延迟播放、没声音或黑屏
     * 3. 视频导致 CPU 性能下降
     * 4. 视频占内存过高
     * 等等
     *
     * 总结:几乎所有和视频相关的问题,我们都可以通过该模块进行排查
     */

    #endregion

    #region 知识点二 Video中各参数功能的含义和作用

    /*
     * 界面参数功能:
     * - 在思维导图中讲解
     */

    #endregion

    #region 知识点三 Video对于我们的意义

    /*
     * Video(视频)模块可以帮助我们:
     *
     * 1. 排查视频卡顿的原因
     *    - 关注 Total Frames Dropped(丢帧总数)、Software Video Playback(软解码视频播放回调数)
     *    - 如果 Dropped(丢弃)值持续增长说明视频播放性能不足
     *    - 如果 Software Video Playback(软解码视频播放回调数)不为 0
     *      证明当前视频编码格式不被硬件支持,建议改为 H.264(mp4)
     *
     * 2. 排查视频不播放或者无画面
     *    - Playing Video Sources(播放中的视频源数量)为 0 说明视频未启动
     *    - 但 Total Video Sources(总视频源)> 0,可能没调用 Play() 或由于平台限制无法播放
     *
     * 3. 排查内存是否泄漏或者复用不当
     *    - 关注 Video Clip Count(视频剪辑数量)和 Total Video Memory(总视频内存)
     *    - 视频切换多次后 Video Clip Count(视频剪辑数量)持续上升,证明没有释放销毁
     *    - 内存持续上升说明视频未释放或帧缓存堆积
     *
     * 4. 播放有延迟或启动缓慢
     *    - 关注 Pre-buffered Frames(预缓冲帧的总数)
     *    - 缓冲帧太少,说明视频太大 / 帧率太高 / Streaming 设置不合理
     *
     * 等等
     *
     * 总结:该模块就是保障视频流畅播放体验的利器
     */

    #endregion
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏