UPL2-8——Video 模块

关于视频播放相关,详见:U4S3——视频播放

Video 模块

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

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

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

等等

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

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

image

  • 视频(Video)分析窗口

    image

    • Total Video Sources:场景中视频源的总数

      判断是否创建了过多视频播放器组件

    • Playing Video Sources:场景中正在播放的视频源数量

      判断是否有视频未正确开始播放

    • Pre-buffered frames:预缓冲帧的总数

      帧数太少可能会导致播放卡顿

    • Total Video Memory:应用程序中的视频所使用的系统内存量

      如果持续增长,说明未释放视频资源或分辨率过高

  • 下方详细内容

    image

    • 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 设置不合理

等等

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