WWDC Quick Look 💓 By SwiftGGTeam
Build live production tools for Apple Immersive Video

Build live production tools for Apple Immersive Video

观看原视频

Highlight

Apple Immersive Video 直播制作采用 ProRes 编码视频、ASAF 空间音频和 JSON 元数据的 SMPTE 2110 IP 网络传输标准,通过 AVFoundation、VideoToolbox 和 Immersive Media Support 框架实现无损耗的录制与回放工作流。

核心内容

传统 2D 直播和沉浸式直播的差异,本质上是”在家看比赛”和”置身现场”的体验差距。

今年早些时候,Apple 通过 Spectrum SportsNet 和 NBA 应用,首次在 Apple Vision Pro 上实现了 LA Lakers 比赛的实时沉浸式直播。观众可以坐在场边”不可及的座位”,观看真实比赛,感受现场人群的呐喊。

实现这种体验,背后是一套全新的制作流程。

传统 2D 广播的视频分辨率是 4K,而沉浸式视频需要达到 8K 立体分辨率——大约是传统信号的 32 倍。帧率也需要翻倍。音频方面,传统立体声或 5.1 环绕声已不够用,Apple Spatial Audio Format (ASAF) 可以支持 64 个或更多声道,将观众完全包裹在空间音频中。

这些巨大的数据量,让传统广播工具和传输方式无法胜任。Apple 重新设计了整个工作流:

制作领域:摄像机、麦克风、图形生成器等设备采集内容,通过视频切换台完成实时制作。

传输领域:编码后的内容通过 IP 网络实时传输给观众。

传统广播常用未压缩视频,但这对沉浸式视频不现实——数据量太大。Apple 选择 ProRes 作为编码格式。ProRes 在图像质量和带宽之间取得了平衡,更重要的是 Apple Silicon 对 ProRes 处理有硬件加速优化。

传输层采用 SMPTE 2110 标准。这是专业媒体 IP 传输的行业标准,用 RTP 协议在网络上传输媒体。2110-22 标准传输压缩视频,2110-30 标准传输音频,2110-41 标准传输用户自定义元数据(如镜头校准数据、创意事件、运动数据)。

这套标准带来的最大优势是”无损工作流”。传统 2D 制作中,视频编码、解码、再编码会导致代际质量损失。而沉浸式视频全程使用 ProRes,录制到文件时无需额外编码,直接将 ProRes 帧复制到 MOV 容器中,回放时再读出传输,全程保持原始质量。

详细内容

媒体格式组成

Apple Immersive Live Video (02:53)

Apple Immersive Live Video 完全由流式 ProRes 帧组成。与传统广播摄像机使用未压缩视频帧不同,ProRes 在保持高保真度的同时将信号压缩到实用尺寸。

视频分辨率为 8K 立体,是传统 2D 广播的 32 倍,帧率是传统制作的两倍。这些数字直接服务于一个目标:匹配人类视觉敏锐度,让观众感觉”真的在那里”。

ASAF 空间音频 (02:45)

Apple Spatial Audio Format (ASAF) 混音由标准未压缩 PCM 音轨组成,携带高阶 ambisonic 基底和空间音频对象。ASAF 混音可包含 64 个或更多声道,将观众沉浸在丰富的空间音频体验中。

元数据格式 (02:41)

元数据以每帧 JSON 对象形式传递,包含描述相关视频和音频馈送的属性:镜头校准、创意事件、空间音频行为等。

SMPTE 2110 传输标准

2110-22:压缩视频传输 (03:05)

沉浸式 ProRes 视频以 2110-22 流形式在网络上传输,这是 IP 压缩媒体的标准。这个 2110-22 流同时包含沉浸式内容的左右眼,作为两个独立的数据本质,但包含在单个流中。

这意味着无需将每只眼睛帧打包成单个图像光栅,或为每只眼睛产生单独的 IP 流。这消除了制作架构中独立左右眼视频馈送的复杂管理。

2110-30:音频传输 (03:46)

ASAF 音频以标准 2110-30 流形式在网络上传输。这些包含组成 ASAF 空间音频混音的高阶 ambisonic 和音频对象通道。

2110-41:元数据传输 (04:11)

JSON 对象通过 2110-41 每帧传输,这是 IP 用户自定义元数据传输的标准。它携带重要的元数据信息——如镜头校准、创意事件和运动数据——与 -22 视频和 -30 音频馈送实时并行传输。

无损耗录制与回放

ProRes 的优势 (04:25)

在传统 2D 工作流中,将实时视频录制到文件时,编码、解码、再编码会导致视觉质量损失。在 Apple Immersive Video 中,即使是很小的质量下降也会显著影响客户体验,特别是随着压缩和解压缩多次循环导致的代际损失随时间复合。

沉浸式格式解决了这个问题:一切都是 ProRes。

录制到文件 (04:47)

因为实时媒体原生生成为文件友好的 ProRes 有效载荷,录制到磁盘不需要额外的编码或解码步骤。相同的 ProRes 帧只是直接复制到 MOV 文件中,并在播放期间读回实时 2110 流——未经任何处理。

实际上,这意味着实时内容可以由摄像机生成,在设备之间传输,录制到磁盘,编辑,并重复播放输出,整个过程对质量没有影响。

写入 MOV 视频轨 (06:47)

使用 AVFoundation 的 AVAssetWriter 将视频馈送保存到 QuickTime MOV 视频轨:

import VideoToolbox

let compressionProperties: [String: Any] = [
    // ...
    kVTCompressionPropertyKey_ProjectionKind as String: kVTProjectionKind_AppleImmersiveVideo
    // ...
]

关键点:

  • kVTProjectionKind_AppleImmersiveVideo 是新增的 VideoToolbox 属性
  • 它会向文件添加正确的 VEXU (Video Extended Usage) 静态元数据
  • 这个元数据向其他应用标识该文件为沉浸式内容
  • 生成的 MOV 文件包含与实时流相同的未修改分辨率、帧率和立体图像数据

写入音频轨 (06:30)

音频馈送以通常方式保存——2110 流中的未压缩 PCM 使用 AVAssetWriter 直接写入 MOV 的音频轨。

写入元数据轨 (06:41)

流式 JSON 数据使用 AVAssetWriter 写入 MOV 容器内的 Metadata Box Exchange format (MEBX) 轨道。存储前,流式 JSON 数据必须反序列化、解析,然后使用 Immersive Media Support (IMS) 框架创建镜头校准对象、摄像机 ID 和其他元数据对象,这些对象与视频和音频同步写入 MOV。

Immersive Media Support 框架

IMS 简介 (07:09)

IMS 首次在 visionOS 26 中引入。它支持读取和写入 Apple Immersive Video 的基本元数据,并为创意工作流中的内容预览提供功能。

虽然沉浸式视频和音频已经由知名技术驱动——如 AVFoundation、VideoToolbox 和 Core Audio——但 IMS 是专为 Apple Immersive Video 构建的强大框架。

文件回放工作流 (07:49)

在文件播放场景中,所有过程都反转。视频、音频和元数据媒体类型直接从 MOV 中的轨道读取,并使用所有相同的框架和库重新传输回 2110 输出流,用于更广泛的生产。

核心启发

1. 实时沉浸式流分析工具

做什么:使用 AVFoundation 解析 2110-22 视频流中的 ProRes 帧,实时监控质量指标(如码率、帧率、立体视差),在制作过程中发现潜在问题。

为什么值得做:8K 立体视频的数据量是传统 2D 的 32 倍,任何质量下降都会显著影响观众体验。实时监控能在问题发生时就发现,而不是等观众投诉后再排查。

怎么开始:用 AVAssetReader 读取 2110-22 流,配合 VideoToolbox 解码器解析 ProRes 帧,提取帧率、码率等元数据做实时监控。入口:AVAssetReader + VideoToolbox 解码器

2. 元数据验证器

做什么:利用 IMS 框架解析 2110-41 流中的 JSON 元数据,验证镜头校准数据的有效性、检查运动数据的一致性,确保传输的元数据符合生产标准。

为什么值得做:元数据与视频、音频实时并行传输,如果镜头校准数据有误,观众的沉浸式体验会立刻出问题(如画面扭曲、空间定位不准)。自动验证能在播出前拦截错误。

怎么开始:用 ImmersiveMediaSupport 框架的元数据解析 API 读取 2110-41 流的 JSON,验证关键字段(如镜头参数、摄像机 ID)的完整性和数值范围。入口:ImmersiveMediaSupport 框架元数据解析 API

3. 即时回放系统

做什么:构建低延迟的即时回放工具,将实时 2110 流直接写入 MOV 文件,然后立即读出回放,整个过程保持 ProRes 无损质量。

为什么值得做:传统录制需要编码再编码,每次循环都损失质量。Apple Immersive Video 全程使用 ProRes,录制时直接将 ProRes 帧复制到 MOV 容器,回放时再读出传输,零质量损失。

怎么开始:用 AVAssetWriter 将 2110 流的 ProRes 帧直接写入 MOV 视频轨,PCM 音频写入音频轨,JSON 元数据通过 IMS 框架解析后写入 MEBX 轨。回放时用 AVAssetReader 读取各轨重新组装成 2110 流。入口:AVAssetWriter 写入 + AVAssetReader 读出

4. 空间音频监控工具

做什么:解析 2110-30 流中的 ASAF 音频,可视化 64+ 声道的空间布局,帮助音频工程师实时调整混音平衡。

为什么值得做:ASAF 混音包含 64 个或更多声道,传统立体声监控工具无法呈现空间分布。可视化工具让音频工程师能直观看到各声道的空间位置和电平,快速发现混音问题。

怎么开始:用 AVAudioEngine 接收 2110-30 流的 PCM 数据,通过 Core Audio 的 ambisonic 解码能力解析 ASAF 格式,将各声道的空间位置渲染成可视化界面。入口:AVAudioEngine + Core Audio ambisonic 解码

5. 网络延迟监控器

做什么:监控 SMPTE 2110 RTP 流的传输时间戳,计算端到端延迟,帮助优化网络配置和设备同步。

为什么值得做:沉浸式直播对同步要求极高,视频、音频、元数据三条流必须严格对齐。RTP 时间戳漂移会导致音视频不同步,直接影响观众体验。

怎么开始:解析 RTP 包头中的时间戳字段,对比发送端和接收端的时间戳差异,计算端到端延迟。设置阈值告警,延迟超标时通知制作团队调整网络配置。入口:RTP 包解析 + 时间戳对比分析

关联 Session

评论

GitHub Issues · utterances