WWDC Quick Look 💓 By SwiftGGTeam
Explore video experiences for visionOS

Explore video experiences for visionOS

观看原视频

Highlight

visionOS 26 用 Apple Projected Media Profile 一份 QuickTime 容器格式,把 180°、360°、Wide FOV 三类非矩形视频统一进 AVKit、RealityKit、QuickLook、Safari 的播放管线,并首次向开发者开放 Apple Immersive Video 的创作链路。


核心内容

过去想在 Vision Pro 上播一段 GoPro 拍的鱼眼素材,开发者要自己处理:检测投影类型、写一份网格、做镜头畸变校正、再决定是窗口还是沉浸式。Canon EOS VR 拍的 180° 立体视频、Insta360 的 360° 球面视频、各家动作相机的 Wide FOV 素材,每一种都有自己的元数据约定。结果是每个视频 App 都要重复造一份格式识别和投影管线,用户从相册里随手拖一个文件进来,往往不知道会不会播、会怎么播。

visionOS 26 把这件事统一成一份 QuickTime movie profile:Apple Projected Media Profile(APMP)。它在已有的 spatial video 容器上扩展字段,描述三种非矩形投影——180° 半球面、360° 全球面、Wide FOV 参数化曲面(16:11)。系统在打开 EOS VR、GoPro MAX、Insta360 X5、HERO13、Ace Pro 2 这些主流设备的源文件时自动转换成 APMP(16:56),并且兼容 Google Spherical Video v1/v2 的 equirectangular 标记。AVKit、RealityKit、QuickLook、Safari、WebKit 全部支持 APMP 的扩展和沉浸式播放,配合 HLS 分发(18:10)。开发者要做的,从「自己写投影管线」退化成「调用一个标准播放器」。

另一条线是 Apple Immersive Video 的创作链路首次开放(19:25)。Blackmagic URSA Cine Immersive 相机每只镜头出厂时都按 parametric 投影做过单独标定,单眼 8160×7200、90fps、210° 水平 FOV(20:22)。素材进 DaVinci Resolve Studio 剪辑,用 Apple Immersive Video Utility 在 macOS / visionOS 上预览校验,最后用 Compressor 切片走 HLS(21:19)。Pro 工具开发者还能用新的 ImmersiveMediaSupport 框架在 macOS 与 visionOS 26 上以编程方式读写 Apple Immersive 内容(21:51)。


详细内容

Session 把视频形态分成五档,每一档对应一种屏幕几何。理解几何,是选格式的起点。

2D 与 3D 视频:rectilinear 投影,落在平面上。2D 可以 inline 嵌入任意 UI,和板式布局共存(01:55)。inline 嵌入一段 3D 视频会优雅降级成 2D 播放(02:09)。立体观看需要走 expanded 模式。Destination Video 示例工程演示了从 expanded 视图淡出、再淡入到 Reality Composer Pro 自定义环境里 docked 播放,画面会自动产生动态光溢出(02:42)。visionOS 26 给 2D/3D 视频新增了 per-frame dynamic mask,可以逐帧改变画幅与比例,无需画黑边(03:35)。规范在 developer.apple.com 的「Rectangular Mask Payload Metadata」文档里。

Spatial Video:立体加元数据,窗口与沉浸双模。默认行为是窗口播放,边缘有发光晕;切沉浸时窗口边缘消失、内容按真实物体尺寸放大(04:57)。窗口模式特意把画面内嵌在窗后并模糊边缘——这是为了缓解一只眼比另一只眼裁切更多带来的不适(05:38)。捕获端:iPhone 15 Pro / 16 / 16 Pro 的 Camera App 和 AVCaptureDevice API、Vision Pro、Canon R7/R50 + DUAL 镜头(05:59)。visionOS 26 把 spatial 风格扩展到 QLPreviewController、AVKit、RealityKit、Safari、WebKit,并支持 HLS(06:31)。剪辑端,Compressor、DaVinci Resolve Studio、Final Cut Pro 都已支持。

180°/360°/Wide FOV:APMP 的三种投影。180° 视频投影到正前方半球,画面填满前向视野;典型形态是立体(09:37)。360° 视频是 equirectangular 投影到完整球面,宽:高 = 2:1(11:03)。180° 用的是 half-equirectangular,方形帧映射到半球(11:34)。立体 180° 视频的两眼传统上 side-by-side 拼成双倍宽帧,但两眼相似度高,浪费带宽。

MV-HEVC 解决冗余。Apple 平台已经硬件支持 HEVC,立体视频用 MV-HEVC:每只眼一份 pixel buffer,写在同一条 video track 内,第二只眼只编码差分(12:50)。流式播放时尤其重要。

Wide FOV 用 parametric immersive projection。GoPro HERO13、Insta360 Ace Pro 2 这类动作相机捕获 120°–180° 水平视角,常用鱼眼镜头,直线会弯曲(13:51)。visionOS 26 的做法是:根据每个相机镜头的焦距、skew、畸变参数,构造一张曲面网格,把视频贴上去——曲面恰好抵消鱼眼,让真实世界的直线在视图里仍是直线(14:44)。这套用参数描述镜头投影的方式叫 parametric immersive projection(16:11)。

APMP 的自动转换:Canon EOS VR Utility 输出的 180° 立体、GoPro MAX / Insta360 X5 的 360°、Google Spherical v1/v2 的 equirectangular 标记、HERO13 / Ace Pro 2 直出文件、360° 相机的单镜头切片,全部在 Vision Pro 上打开时自动识别成 APMP(16:56)。macOS 上 avconvert 命令行工具也已扩展支持 180°/360° → APMP 的离线转换(18:00)。

APMP 的播放约束:支持 expanded 与 immersive 两种模式,不支持 inline embedded 播放18:21)。沉浸式播放对相机抖动敏感(想象冲浪板上绑的相机),所以 QuickLook、AVKit、RealityKit 加入了高动态自动检测,检测到剧烈运动会自动降低沉浸度,用户也能在「设置」里调整自己的敏感度(18:46)。

Apple Immersive Video 的开放:URSA Cine Immersive 单眼 59 MP、90fps,超过 100 亿像素/秒(20:30)。完整管线:拍摄 → DaVinci Resolve Studio 剪辑 → Apple Immersive Video Utility(macOS + visionOS 双端)预览校验 → Compressor 分段 → HLS 分发(21:19)。ImmersiveMediaSupport 框架是 Apple Immersive 的可编程读写入口(21:56)。格式独有能力包括 per-shot 边缘 alpha 羽化曲线(以动态曲线形式存储,把每个镜头边缘融进自定义背景环境)、自定义 backdrop environment、新的 Apple Spatial Audio Format、Apple Vision Pro 上的实时预览(22:13)。


核心启发

1. 把 APMP 当作视频 App 的默认导入格式

为什么值得做:你不再需要为每个相机品牌写一份元数据解析器,系统在打开文件时自动识别并转成 APMP。一个播放器就覆盖 180°、360°、Wide FOV 三种投影。

怎么开始:在导入流程里直接用 AVKitRealityKit 的 immersive 播放接口,让系统自动判定投影;只在需要 inline 缩略图时回退到 2D 表现,因为 APMP 不支持 inline 播放。

2. 给非矩形视频 App 加 high motion 设置入口

为什么值得做:动作相机素材天然抖动剧烈,沉浸播放会放大不适。系统层已经有 high motion detection 自动降级,但有些用户仍想手动控制。

怎么开始:在播放界面引导用户去「设置」里调节高动态敏感度;UI 上提供一个「降低沉浸度」开关,让动晕用户不必离开 App。

3. 用 ImmersiveMediaSupport 框架把 Apple Immersive 接进自己的 Pro 工具

为什么值得做:Apple Immersive 现在第一次对开发者开放。如果你做非线性编辑器、转码工具、资产管理工具,谁先把读写支持做上谁就吃到 URSA Cine Immersive 进入工作室之后的需求红利。

怎么开始:从 macOS / visionOS 26 的 ImmersiveMediaSupport 框架入手,配合 Authoring Apple Immersive VideoConverting projected video to Apple Projected Media Profile 两份示例代码工程做最小读写 demo;先支持 per-shot edge blend 曲线读写,再扩展到 Spatial Audio Format。

4. 给已有 spatial 视频 App 补上 QLPreviewController / AVKit / RealityKit / WebKit 的多入口

为什么值得做:visionOS 26 把 spatial 风格扩到全部 Apple 媒体框架——这意味着你可以在 Web 内嵌、AVPlayer 控件、RealityKit 实体三处共用同一份资源。

怎么开始:盘点 App 里所有播放视频的位置,把单一播放器换成各场景对应的官方组件,HLS 流走同一条分发通道。


关联 Session

评论

GitHub Issues · utterances