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