将输入视频转换为 HDR

本页面介绍了如何将转码作业中的输入视频转换为 支持高动态范围 (HDR) 或标准动态范围 (SDR) 格式。通过 Transcoder API 使用高效视频编码 (HEVC) 作为 用于颜色转换的编解码器。如果您未设置此政策 指定颜色转换格式。

颜色转换格式

HEVC 是用于受支持的颜色转换格式的主要编解码器, 包括:

  • 混合对数伽马 (HLG)
  • SDR
  • HDR10

对于 H.264VP9 串流,仅支持 HLG 和 SDR。支持在受支持的编解码器和上述颜色格式之间进行的所有转换。

直通式

如果未指定颜色转换,系统会默认启用 Passthrough 格式。

对于透传模式,Transcoder API 遵循输入原色, 转换函数、范围、色度位置和颜色空间;无颜色转换 都是在这个过程中完成的如果输入是 HDR10(或 HDR10+)和 HEVC,Transcoder API 还会将元数据传递给输出视频。

如果您指定的输出编解码器不支持输入源的颜色格式, 那么直通是尽力而为。例如,一个 HDR10 输入视频具有 10 位 适用于 profilepixelFormat 的选项。如果您 将输出指定为 H.265,并针对 profile 使用 8 位选项; 输出不是有效的 HDR10 视频,因为 HDR10 不支持 8 位 选项(用于 profile)。

转化示例

如需指定颜色转换格式,请使用空的 hlghdr10sdr 对象。以下各部分展示了 要添加到 VideoStream 以执行指定任务的 JSON 对象, 。

转换为 HLG 格式

使用 hlg 对象将输入视频转换为 HLG 格式。

"elementaryStreams": [
  {
    "key": "video_hlg",
    "videoStream": {
      "h264": {
        "heightPixels": 720,
        "widthPixels": 1280,
        "bitrateBps": 5000000,
        "frameRate": 25,
        "hlg":{}
    }
  }
]

转换为 HDR10 格式

使用 hdr10 对象将输入视频转换为 HDR10 格式。

"elementaryStreams": [
  {
    "key": "video_hdr10",
    "videoStream": {
      "h265": {
        "heightPixels": 720,
        "widthPixels": 1280,
        "bitrateBps": 5000000,
        "frameRate": 25,
        "pixelFormat":"yuv420p10",
        "profile":"main10",
        "hdr10":{}
    }
  }
]

向下转换为 SDR 格式

使用 sdr 对象将输入视频向下转换为 SDR 格式。

"elementaryStreams": [
  {
    "key": "video_sdr",
    "videoStream": {
      "h264": {
        "heightPixels": 720,
        "widthPixels": 1280,
        "bitrateBps": 5000000,
        "frameRate": 25,
        "sdr":{}
    }
  }
]

可能出现的错误

如果 Transcoder API 无法执行转换,转码作业将失败。可能的错误包括:

  • 使用 8 位像素格式或配置文件转换为 HDR10 格式
  • 不符合 BT.709 的 SDR 输入