跳到主要内容

Video Playback / 播放视频

源文档地址

vvvv 提供了两条截然不同的视频播放路子:

  • 视频文件
  • 图像序列

视频文件

优点

  • 又快又好上手
  • 对不稳定的渲染帧率比较宽容 —— 必要时会丢帧

缺点

  • 做不到无缝循环(某些编解码器可能行,另一些不行)
  • 做不到源之间的无缝切换(某些编解码器可能行,另一些不行)
  • 可能出现微抖动,全屏播放时最明显 —— 因为时序没有与垂直同步耦合
  • 没有网络同步
备注

要播放 HAP 视频文件,需要第三方的 VL.HapPlayer NuGet。

图像序列

  • 取决于你用的渲染引擎,随 vvvv 发布的是下面这些节点:
    • VL.Stride(3D 引擎):ImagePlayer (Stride) [Video] 或 ImagePlayer (FrameBased Stride) [Video]
    • VL.Skia(2D 引擎):ImagePlayer (Skia) [Video] 或 ImagePlayer (FrameBased Skia) [Video]
  • VL.Stride 的 ImagePlayer 更偏好 DDS 格式(英文)的图像(转换工具见下文)
  • 两者都支持播放 JPG、PNG 和 BMP 文件
  • 这些节点的用例请查阅帮助面板

优点

  • 节点有两种变体:基于时间的和逐帧的,见下文
  • 能做到无缝循环
  • 可以实现源之间的无缝切换
  • 局域网内多台 PC 上的图像序列播放可以做同步

缺点

  • 媒体素材管理起来没那么舒服(也就是成千上万个图像文件)
  • 音轨需要另外用 VL.Audio 单独播放

基于时间 vs. 逐帧

基于时间

  • 默认的、更好上手的选择
  • 用在视频不是全屏播放、而是作为场景一部分的场合
  • 对不稳定的渲染帧率比较宽容 —— 必要时会丢帧
  • 可能出现微抖动,全屏播放时最明显 —— 因为时序没有与垂直同步耦合

逐帧

  • 用在视频全屏播放的场合
  • 能做到帧级精确、与垂直同步耦合的播放
  • 要求渲染帧率完全稳定

DDS 转换工具