このページでは、コード変換ジョブの入力動画を、サポートされているハイ ダイナミック レンジ(HDR)形式または標準ダイナミック レンジ(SDR)形式に変換する方法について説明します。Transcoder API は、高効率ビデオ コーディング(HEVC)を色変換のプライマリ コーデックとして使用します。色変換形式を指定しない場合、パススルーはデフォルトで有効になります。
色変換形式
HEVC は、サポートされている色変換形式に使用されるメイン コーデックで、以下のものが含まれます。
- ハイブリッド ログガンマ(HLG)
- SDR
- HDR10
H.264 ストリームと VP9 ストリームでは、HLG と SDR のみがサポートされます。サポートされているコーデックと上記のカラー形式の間のすべての変換はサポートされています。
パススルー
色変換形式を指定しない場合、パススルーはデフォルトで有効になります。
パススルーの場合、Transcoder API は入力カラーのプライマリ、転送関数、範囲、彩度の位置、色空間を使用します。プロセスでは色変換が行われません。入力が HDR10(または HDR10+)と HEVC の場合、Transcoder API は、出力動画にメタデータを渡します。
入力のカラー形式をサポートしていない出力コーデックを指定すると、パススルーがベスト エフォートになります。たとえば、入力 HDR10 動画には profile
と pixelFormat
の 10 ビット オプションがあります。profile
に対して 8 ビット オプションを使用して出力を H.265 として指定した場合、HDR10 は profile
に対して 8 ビット オプションでは機能しないため、出力は有効な HDR10 動画ではありません。
変換の例
カラー変換形式を指定するには、空の hlg
オブジェクト、hdr10
オブジェクト、または sdr
オブジェクトを使用します。以下のセクションでは、特定の変換をおこなうために 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 入力