View in English

  • 打开菜单 关闭菜单
  • Apple Developer
搜索
关闭搜索
  • Apple Developer
  • 新闻
  • 探索
  • 设计
  • 开发
  • 分发
  • 支持
  • 账户
在“”范围内搜索。

快捷链接

5 快捷链接

视频

打开菜单 关闭菜单
  • 专题
  • 相关主题
  • 所有视频
  • 关于

返回 WWDC19

大多数浏览器和
Developer App 均支持流媒体播放。

  • 简介
  • 转写文稿
  • 支持 Alpha 通道的 HEVC 视频

    HEVC 视频增加了对 alpha 通道的支持,您现在可以在 app 和网页上通过自定背景合成视频。了解如何制作兼容的媒体,以及进行播放的最佳做法。

    资源

    • HEVC Video with Alpha Interoperability Profile
    • Using HEVC Video with Alpha
      • 高清视频
      • 标清视频
    • 演示幻灯片 (PDF)

    相关视频

    WWDC19

    • 面向网页开发者的新增内容
  • 搜索此视频…

    大家好 我是 Shiva Sundar 非常高兴能和大家讨论 有 Alpha 通道 的 HEVC 视频

    你也许很熟悉 图像文件中的 Alpha 通道

    Alpha 通道在图像文件 App 和网络中无处不在

    当图像文件中有 Alpha 通道时 图像中的每个像素 都会得到不透明度及其颜色

    这使得我们 可以得到一个复杂的 非矩形的图像 但在许多不同的背景下 合成时看起来很自然

    所以 Alpha 通道和透明度很常见 主要通过像 PNG 这样的 静止图像格式 在网络上使用

    视频中的 Alpha 不太常见

    它是专业的 视频工作流程工具 专业视频工作流 如 Apple ProRes 4444 中 使用的格式数据速率非常高 不适合传送

    2017 年 Apple 推出了 对 HEIF 图像文件格式的支持 这使我们可以 利用 HEVC 中的 高级有损压缩技术 来压缩静止图像

    HEIF 还允许在图像文件中 包含 Alpha 通道

    事实上 今年我们增加了 对 HEIF 序列的支持 允许你在一个文件中 拥有多个图像

    HEIF 序列也支持 Alpha 通道

    一段时间以来 我们已经认识到 采用较低比特率的方式 将 Alpha 包含在动态视频当中的需求

    所以我们说 让我们来使用 先进的有损压缩技术 来支持视频文件中的 Alpha 通道

    在所有支持的设备和计算机上 iOS 13 tvOS 13 和 macOS Catalina 都支持使用 Alpha 播放 HEVC 视频

    所有具有 HEVC 编码器的 设备和计算机 都支持编码

    拥有 Alpha 格式的视频 效果很好 其比特率足够低可以分发 这创造了许多机会

    你可以使用 丰富的非矩形动态视频内容 作为 App 表达体验的一部分

    它可以像动画一样 预先渲染 这样的元素 可以在复杂的背景上移动 甚至有几个元素 可以给人一种 深度或复杂交互的感觉

    因为这些是视频 它们可以有同步的音轨 所以这样一来 这些非矩形影片中的角色 就可以说话了

    超级专业的 Alpha 通道 内容 为你而设 Woo-hoo Woo-hoo 它们可以将 SpriteKit SceneKit 或 Metal 集成到游戏当中

    在本文中 我们向你提供了一些示例代码 介绍了如何用 Alpha 通道 将 SceneKit 场景录制到 HEVC 视频中 以及如何在 SpriteKit 场景 中渲染另一个场景

    在网页上 它们可使互动元素活跃起来 iOS 13 和 macOS Catalina 中的 Safari 支持带有 Alpha 的 HEVC 视频

    Safari 还可以告诉网页 是否支持此功能

    想要获得有关 API 媒体功能的 更多使用信息 请务必查看这个视频 《What's New in Authentication, Safari and WebKit》

    以低比特率分散 带有 Alpha 的视频 这种能力为创作 App 提供了机会 以提供背景删除

    现在我站在一张 挂在墙上的绿色幕布前 这是用 iPhone 录制的

    我希望我在这里 我使用了一个自定义的视频合成器 和一个共同图像过滤器 用透明来替换绿色像素 并将其导出到一个 带 Alpha 的影片当中

    我希望我在这里

    现在我可以 在我喜欢的任何背景上

    叠加这个视频

    我们将提供示例代码 显示了如何执行此操作 并使用 Alpha 影片编写生成的 HEVC 视频

    那么这是如何工作的呢

    如你所知影片文件 包含各种媒体类型的曲目

    视频轨道包含视频帧

    带有 Alpha 的 HEVC 视频包含在 影片的单个视频轨道内

    在单轨中 每个帧包含两个称为层的部分 每个层使用 HEVC 编解码器 进行压缩

    底层像往常一样 包含帧的彩色图像

    Alpha 图层仅包含 帧的 Alpha 通道

    这是使用特殊的 HEVC 语法来完成的 能识别出这两个层级

    该语法的 HEVC 规则 意味着 不知道如何处理 Alpha 层的 HEVC 解码器 将忽略它并仅显示基本层

    我们来继续讨论 如何使用它

    具有 Alpha 编码的 HEVC 被集成到众多 AVFoundation API 中 例如 我们看看内容创建

    你可以在 App 中 使用 Alpha 渲染视频帧 并使用 AVAssetWriter 进行编码 并将其写入影片文件

    你可以使用 AVAssetExportSession 提供的新预设 将包含 Alpha 包括 Apple ProRes 4444 的视频格式 转码为带 Alpha 的 HEVC

    这些新的 HEVC 预设 带有 WithAlpha 的后缀

    你还可以使用 AVAssettExportSession 以特定的背景色刻录 将具有 Alpha 的影片 转换为不带 Alpha 的影片 该影片将在不支持带有 Alpha 的 播放器上播放

    或者你也可以 通过 VTCompressionSession 将 HEVC 与 Alpha 视频编码器配合使用

    我们来看看 AVFoundation 的回放 API AVPlayer 和 AVPlayerLayer 支持带有 Alpha 的 HEVC 通过 Core Animation AppKit 和 UIKit 显示在 App 视图层次结构中

    AvPlayerLayer 中的视频 将以透明背景显示 并与其他层和视图融为一体

    或者你可以使用 AVPlayerItemVideoOutput 直接访问一系列 已解码的视频帧

    当你想要将这些视频帧 合并到使用 Metal SpriteKit 和其他基于 GPU 的 渲染 API 的自定义渲染中时 这是个很好的选择 如果你需要 为其他目的而解码帧 可以直接使用 AVAssetImageGenerator 和影片的单个帧 作为带 Alpha 的 CGImage

    你可以使用 AVAssetReader 提取视频帧以用于 非回放工作流

    你也可以直接通过 VTDecompressionSession 将 HEVC 与 Alpha 视频解码器配合使用 视频解码器配合使用

    简而言之 因为带有 Alpha 的 HEVC 在视频编解码器的级别 集成到了 AVFoundation 中 所以以它很适合所有熟悉的 API 工作流

    现在让我们看看 如何在代码中实现这一点

    对影片进行编码时 在配置 AVAssetWriter 输入 或 VTCompressionSession 时 使用带 Alpha 的 视频编解码器类型 HEVC

    这是 Alpha 通道 应编码的特殊信号 编码文件将具有 标准 HEVC 编解码器类型 它将向后兼容 不能读出 Alpha 的 HEVC 播放器 将只显示基本视频层 它将忽略 Alpha 部分

    如果使用 Alpha 通道 你可能会明白 有两种方法 可以将视频数据写入文件 Premultiplied Alpha Straight Alpha 后者也被称为 Unassociated Alpha 或 Non-premultiplied Alpha

    这些选择之间的权衡 超出了本次讨论的范围

    如果你熟悉这些 你要知道的是 两者都能被支持

    假如与这些不相似 我们建议使用默认值 即 Premultiplied Alpha 它是大多数基于 GPU 的 渲染部件的自然选择 并且具有更好的伸缩性

    现在查看代码 你可以通过 配置压缩会话 或作为缓冲附件 来指定 Alpha 模式 作为一种安全机制 如果设置和缓冲区附件 都被指定并且 它们不匹配败 编码操作将失败

    我们的 API 要求 Alpha 通道 以固定的质量进行编码 因为 Alpha 通道中的 视频编码失真可能很麻烦 因为相同的失真 不会出现在基础层中

    如果需要 我们的 API 可让你分别控制 基本层比特率 和 Alpha 通道的质量 现在我们来看看代码 你可以使用 Alpha 参数的目标质量 指定 Alpha 图层质量

    它的区间在 0 和 1 之间 其中 1 表示它接近无损

    指定的比特率参数 仅适用于基础层 Alpha 图层将忽略该参数

    要检测 Alpha 通道的存在 可以用 withMediaCharacteristic:.containsAlphaChannel 来测试 也可以查询 formatDescription.extensions 的布尔值

    如果你试图 用 Alpha 影片导出 HEVC 请使用 determineCompatibility API 以验证源资源中 是否存在 Alpha

    此验证只考虑源影片 而不考虑视频合成 因此如果使用视频合成 从没有 Alpha 通道的源 生成新的 Alpha 通道 则必须跳过它

    当前生态中有很多 视频播放器

    不支持 HEVC 更不用说带 Alpha 通道的 HEVC 了

    可以通过以纯色背景颜色 进行刻录来移除 Alpha 通道

    我们添加了一些方便的 API 和示例代码 来帮助简化这种转换

    如果你希望 在非 Apple 媒体框架中 构建支持 我们已经发布了 应该阅读的互操作性配置文件的规范 你们应该阅读一下 但是如果你等不及了 这里可以先睹为快

    总而言之带有 Alpha 的 HEVC 视频是一个很酷的新功能 它利用了 HEVC 最先进的压缩技术

    iOS 13 tvOS 13 和 macOS Catalina 都支持它

    它利用了最近 设备上的硬件加速

    它很好地集成到 AVFoundation 中 可以在你的 App 中使用

    它还集成在 Safari 中 用于你的 Web 体验

    带有 Alpha 的 HEVC 为开发人员和用户 带来了新的 有创造性的表达机会 我们已经迫不及待地 想看看你在 App 中 如何利用它 感谢大家

Developer Footer

  • 视频
  • WWDC19
  • 支持 Alpha 通道的 HEVC 视频
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载 (英文)
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    获取 Apple Developer App。
    版权所有 © 2025 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则