基础概念

理解 Video Schema 的核心概念

基础概念

在开始创建视频之前,了解 Video Schema 的核心概念非常重要。

Schema 结构

视频 Schema 由几个主要部分组成:

{
  "meta": { ... },      // 元数据
  "video": { ... },     // 视频配置
  "audio": { ... },     // 音频配置(可选)
  "assets": { ... },    // 资源引用(可选)
  "tracks": [ ... ]     // 内容轨道
}

Meta

关于 Schema 本身的元数据:

字段类型必填描述
versionstringSchema 版本(如 "2.0.0")
titlestring项目标题
descriptionstring项目描述
authorstring作者名称
tagsstring[]分类标签

视频配置

定义输出视频的属性:

字段类型必填描述
widthnumber视频宽度(像素)
heightnumber视频高度(像素)
fpsnumber每秒帧数
durationnumber总时长(秒)
backgroundstring背景颜色(十六进制)

常用分辨率

名称宽度高度宽高比
1080p1920108016:9
720p128072016:9
4K3840216016:9
竖屏108019209:16
方形108010801:1

轨道

轨道是包含片段的图层。可以把它想象成视频编辑软件中的图层:

  • 视觉轨道:包含文本、图片、视频、形状
  • 音频轨道:包含背景音乐、配音
  • 字幕轨道:包含字幕数据
{
  "id": "main",
  "type": "visual",
  "clips": [ ... ]
}

片段

片段是轨道内的独立元素。每个片段包含:

  • 类型:元素类型(文本、图片、视频等)
  • 时间:何时出现以及持续多久
  • 变换:位置和大小
  • 样式:视觉外观
  • 动画:动态效果

片段类型

类型描述
text文本内容
image静态图片
video视频内容
rect矩形形状
circle圆形形状
layout子片段容器
subtitle字幕内容

时间

每个片段都有时间属性:

{
  "start": 0,      // 片段出现的时间(秒)
  "duration": 5    // 可见时长(秒)
}

变换

控制位置和大小:

{
  "transform": {
    "x": "50%",           // 水平位置
    "y": "50%",           // 垂直位置
    "width": 400,         // 宽度(像素或百分比)
    "height": 300,        // 高度(像素或百分比)
    "rotation": 0,        // 旋转角度
    "anchor": "center"    // 锚点
  }
}

锚点

  • centertopbottomleftright
  • top-lefttop-rightbottom-leftbottom-right

样式

控制视觉外观:

{
  "style": {
    "fill": "#ffffff",       // 填充颜色
    "opacity": 1,            // 透明度 0-1
    "fontSize": 48,          // 字体大小(文本用)
    "fontWeight": 700,       // 字重(文本用)
    "shadowColor": "#000",   // 阴影颜色
    "shadowBlur": 10         // 阴影模糊
  }
}

动画

为片段添加动态效果:

{
  "animations": [
    { "type": "fadeIn", "duration": 0.5 },
    { "type": "slideIn", "direction": "up", "duration": 0.8 }
  ]
}

动画类型

类型描述
fadeIn从透明淡入
fadeOut淡出到透明
slideIn从某个方向滑入
slideOut滑出到某个方向
zoomIn从小放大
zoomOut缩小
scale动画缩放属性
move动画位置
rotate动画旋转

Z-Index

控制片段的堆叠顺序。数值越大,越显示在顶层:

{
  "zIndex": 10  // 会显示在 zIndex 较低的片段之上
}

下一步