Explore video experiences for visionOS
Audio & Video 进阶 1m

探索 visionOS 视频体验

Explore video experiences for visionOS

2025年6月9日

在 Apple 官方观看视频

一句话判断

visionOS 26 把视频类型从三种(2D/3D/spatial)扩展到了七种(加上 180/360/Wide FOV/Apple Immersive),新增的 Apple Projected Media Profile 统一了沉浸式视频格式——GoPro 和 Insta360 的素材直接扔进 Vision Pro 就能沉浸式播放。

这场 Session 讲了什么

这是一场 visionOS 视频能力的全景扫描。从最基础的 2D/3D 内联播放,到 spatial video 的窗口/沉浸式双模式,再到 180/360/Wide FOV 三种非矩形投影格式,最后到 Apple Immusive Video(首次开放给开发者和内容创作者)。Session 花了大量篇幅讲解新增的 Apple Projected Media Profile(APMP),这是统一 180/360/Wide FOV 视频的容器格式。

另一个重磅消息是 Apple Immersive Video 的创作工具链开放:Blackmagic URSA Cine Immersive 相机 + DaVinci Resolve Studio 剪辑 + Compressor 分段 + HLS 分发。配合新增的 ImmersiveMediaSupport 框架,开发者可以编程方式读写 Apple Immersive 内容。

值得深挖的点

APMP:统一的沉浸式视频格式

APMP(Apple Projected Media Profile)是 visionOS 26 新增的 QuickTime Movie profile,统一描述三种非矩形投影:

  • 180 度视频:半球投影,通常是立体声,方形像素映射到前半球。
  • 360 度视频:全球投影,等距矩形映射(就是常见的全景视频格式)。
  • Wide FOV 视频:运动相机(GoPro HERO13、Insta360 Ace Pro 2)的鱼眼镜头,用参数化投影(parametric immersive projection)描述镜头畸变曲线。

关键便利性:系统会自动识别并转换已有的视频。Canon EOS VR 系统的 180 度立体视频、GoPro MAX/Insta360 X5 的 360 度视频、Google Spherical Video v1/v2 格式的内容,都会自动转为 APMP。你不需要手动转码。

Spatial Video 的双模式播放

Spatial Video(立体视频 + 额外元数据)支持两种播放模式:窗口模式(带发光边缘的嵌入式播放)和沉浸式模式(按真实比例显示,无缝融入现实世界)。在 visionOS 26 中,这种 spatial styling 支持扩展到了所有 Apple 媒体框架——AVKit、RealityKit、Safari、WebKit、QuickLook,还支持 HLS 流。这意味着你可以在自己的 App 中任意方式集成 spatial video。

Apple Immersive Video 的技术规格

Blackmagic URSA Cine Immersive 的参数令人震撼:每眼 8160x7200 像素(5900 万像素/眼),90fps,每秒超过 100 亿像素。水平 FOV 210 度,垂直 FOV 180 度。每颗镜头在出厂时单独校准。内容创作流程是:相机拍摄 → DaVinci Resolve 剪辑 → Apple Immersive Video Utility 预览验证 → Compressor 分段供 HLS 分发。

特别值得注意的是逐镜头边缘混合(per-shot edge blends):每个镜头可以定义自定义 alpha 混合曲线,将画面边缘过渡到自定义背景环境。这不是静态遮罩,而是动态的 alpha 混合。

高运动检测

APMP 内容的沉浸式播放会把观众的头部放到相机位置。运动相机经常绑在冲浪板、自行车上,剧烈运动会让人不适。系统在 QuickLook、AVKit、RealityKit 中自动检测高运动场景,检测到时自动降低沉浸度。用户可以在设置中根据个人运动敏感度调整阈值。

代码片段

1. 在 AVKit 中播放 Spatial Video

场景:App 内以 spatial styling 播放 HLS 流。

import AVKit

let spatialVideoURL = URL(string: "https://example.com/spatial.m3u8")!
let player = AVPlayer(url: spatialVideoURL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player

// spatial styling 在 visionOS 26 中自动启用
present(playerViewController, animated: true)

2. 播放 180 度 APMP 内容

场景:播放本地 180 度立体视频。

import AVKit
import RealityKit

// APMP 文件已自动识别投影类型
let videoURL = Bundle.main.url(forResource: "scene_180", withExtension: "mov")!
let player = AVPlayer(url: videoURL)

// expanded + immersive 播放模式
// APMP 不支持 embedded inline 播放
let playerView = VideoPlayerView(player: player)

坑:APMP 内容只支持 expanded 和 immersive 播放,不支持内联嵌入播放。

最佳实践

选择视频格式时,从内容类型出发:空间视频适合用户自己拍摄的立体回忆(iPhone/AVP 相机),180 度适合”把你带到某个地方”的体验,360 度适合”让你环顾四周”的体验,Wide FOV 适合运动相机素材,Apple Immersive Video 适合追求极致沉浸的专业内容。

如果你在做视频播放 App,APMP 的自动识别和转换意味着你可以直接支持用户导入各种来源的 180/360/Wide FOV 视频,不需要自己做格式检测和转码。

分发方面,所有格式都支持 HLS 流式传输。如果你有服务器端转码管线,用 Compressor 把内容切成分段就行。

还有什么值得关注

  • Dynamic Mask(动态遮罩):visionOS 26 新增,2D/3D 视频可以逐帧指定动态遮罩来改变宽高比和形状,实现无黑边的画面裁切动画。只有空间计算设备能做到。
  • Multi-view Video:visionOS 2 引入的多视角同时播放,配合 Session 302 的多路同步 API 可以做很酷的体育/演唱会体验。
  • Spatial Gallery App:Vision Pro 上的示例 App,展示了 spatial photo 和 video 的各种呈现方式,值得下载体验。
  • ImmersiveMediaSupport 框架:macOS 和 visionOS 上编程方式读写 Apple Immersive 内容,适合做自定义编辑工具或管线工具。
Audio & Video Design 空间计算