这是一种新的开源格式,用于在 Web 上进行交互式视频播放,其中包含内置的状态机、帧精确的过渡和压缩的 Alpha 透明度。
AVAL 是一种用于短时预渲染动画的 Web 格式和运行时,具有连续循环、命名应用程序状态、自定义触发器、有限过渡、反转和压缩透明度。一个逻辑动画被发布为一个编解码器包。每个编解码器都有自己的 AVAL 线 1.1 文件 - AV1、VP9、H.265/HEVC 或 H.264 - 浏览器会选择 AVAL 固定的 AV1 → VP9 → H.265 → H.264 阶梯中的第一个候选编解码器,并进行解码和输出准备性验证。DOM 源顺序不会改变此策略。状态图和自定义定时在每个文件中都是相同的。
每个 AVAL 集成都必须拥有其不受支持的浏览器和致命错误路径。某个浏览器可能缺少所需的 WebCodecs 接口,每个编写的编解码器都可能不受支持,或者其他终端播放失败可能会停止源生成。在这种情况下,prepare() 会以 AvalPlaybackError 来拒绝,该元素会触发一个致命的 error 事件,并将 failure.code 设置为如 unsupported-profile 或 unsupported-browser 等值。
AVAL 刻意不创建、选择、显示或隐藏备用内容。应用程序必须决定是否显示普通视频、图像、文本、其他渲染器,还是什么都不显示。在明确注册之前安装元素的直接 error 监听器,这样升级时的失败不会超出应用程序的边界,并在直接调用 prepare() 时处理被拒绝的 prepare() 承诺。根据 failure.code 分支;不要解析错误消息。下面的浏览器集成示例演示了这一必需的边界。
在源媒体旁边创建一个 motion.json。此最小示例预期 motion.mov 是一个渐进式、正方形像素、未旋转的 1920×1080 视频,帧率为 30 fps,至少有 120 帧。它将第一四秒的内容编译为一个循环的 VP9 AVAL:
暂无开放 Issues,或尚未同步最近议题。