将输入视频转换为 HDR 格式

本页面介绍了如何将转码作业中的输入视频转换为受支持的高动态范围 (HDR) 或标准动态范围 (SDR) 格式。Transcoder API 使用高效视频编码 (HEVC) 作为颜色转换的主要编解码器。如果您未指定颜色转换格式,系统会默认启用 Passthrough。

颜色转换格式

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

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

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

直通

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

对于直通式,Transcoder API 会遵循输入原色、转换函数、范围、色度位置和颜色空间;在此过程中,不会进行任何颜色转换。如果输入是 HDR10(或 HDR10+)和 HEVC,Transcoder API 还会将元数据传递给输出视频。

如果您指定的输出编解码器不支持输入颜色格式,系统会尽量使用直通模式。例如,HDR10 输入视频的 profilepixelFormat 具有 10 位选项。如果您通过 profile 的 8 位选项将输出指定为 H.265,则输出不是有效的 HDR10 视频,因为 HDR10 无法与 profile 的 8 位选项配合使用。

转化示例

如需指定颜色转换格式,请使用空的 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 输入