Convertir une vidéo d'entrée au format HDR

Cette page explique comment convertir la vidéo d'entrée d'une tâche de transcodage dans un format HDR (High Dynamic Range) ou SDR (Standard Dynamic Range) compatible. L'API Transcoder utilise le codage vidéo haute efficacité (HEVC) comme codec principal pour la conversion des couleurs. Le contournement est activé par défaut si vous ne spécifiez pas de format de conversion des couleurs.

Formats de conversion de couleur

HEVC est le codec principal utilisé pour les formats de conversion de couleur compatibles, y compris les suivants:

  • Log-gamma (HLG) hybride
  • SDR
  • HDR10

Pour les flux H.264 et VP9, seuls les formats HLG et SDR sont acceptés. Toutes les conversions entre le codec compatible et les formats de couleur précédents sont acceptées.

Passthrough

Le contournement est activé par défaut si vous ne spécifiez pas de format de conversion des couleurs.

Pour le passthrough, l'API Transcoder respecte les primaires de couleurs d'entrée, la fonction de transfert, la plage, l'emplacement de la chrominance et l'espace colorimétrique. Aucune conversion de couleur n'est effectuée au cours du processus. Si l'entrée est HDR10 (ou HDR10+) et HEVC, l'API Transcoder transmet également les métadonnées à la vidéo de sortie.

Si vous spécifiez un codec de sortie qui n'est pas compatible avec le format de couleur de l'entrée, le passthrough est effectué au mieux. Par exemple, une vidéo HDR10 d'entrée propose des options 10 bits pour profile et pixelFormat. Si vous spécifiez le format H.265 avec une option 8 bits pour profile, il ne s'agit pas d'une vidéo HDR10 valide, car HDR10 ne fonctionne pas avec une option 8 bits pour profile.

Exemples de conversions

Pour spécifier le format de conversion des couleurs, utilisez un objet hlg, hdr10 ou sdr vide. Les sections suivantes présentent l'objet JSON à ajouter à un VideoStream pour effectuer une conversion donnée.

Convertir au format HLG

Utilisez l'objet hlg pour convertir une vidéo d'entrée au format HLG.

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

Convertir au format HDR10

Utilisez l'objet hdr10 pour convertir une vidéo d'entrée au format HDR10.

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

Convertir en SDR

Utilisez l'objet sdr pour convertir une vidéo d'entrée au format SDR.

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

Erreurs possibles

Si l'API Transcoder ne peut pas effectuer la conversion, la tâche de transcodage échoue. Voici quelques erreurs possibles:

  • Conversion au format HDR10 avec des profils ou des formats de pixel 8 bits
  • Entrées SDR non conformes à BT.709