色调映射 - 支持 HDR 和 SDR 内容

在使用 Transformer 时,务必考虑 HDR 和 SDR 内容之间的兼容性。HDR 显示内容具有更丰富的色彩细节、色彩和对比度,为用户提供更好的视觉体验。但是,由于 HDR 和 SDR 之间色域范围的差异,组合这两种类型的內容可能会导致兼容性问题。

在构建 Composition 时,您可以选择为 HDR 视频输入 setHdrMode。默认情况下,Transformer 将此值设置为 HDR_MODE_KEEP_HDR,以确保输出保持 HDR 格式。如果设备不支持 HDR 格式,Transformer 会自动尝试使用 HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL 代替。

在某些情况下,您可能需要组合 HDR 和 SDR 资源。例如,您可能在 HDR 视频和图像上叠加 SDR 叠加层,或者您可能混合了 HDR 和 SDR 视频。在这种情况下,您可以选择以下选项

优势 劣势
使用 MediaCodec 进行色调映射 如果设备和 API 组合支持,则输出最佳视觉质量。 仅在 API 31+ 的某些设备上受支持,以及在支持 HDR 捕获的设备上的 API 33+ 受支持。如果不受支持,Transformer 将抛出 ExportException
使用 OpenGL 进行色调映射 在 API 29+ 上受支持,在设备上具有更广泛的支持。产生更一致的结果。 与使用 HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC 输出相比,可能会产生细微差异。
将 HDR 解释为 SDR 支持范围最广的选项。 内容可能看起来褪色,并可能显示不正确。

当前限制

以下内容在多资源组合中不受支持

  • SDR 到 HDR 色调映射
  • 以 HDR 资源开头的 SDR 和 HDR 内容序列