HDR to SDR API

HDR in, SDR out, in one API call.

Send an HDR10 or HLG master by URL and get back an SDR file tagged BT.709, written to your own storage. The tone curve, gamut handling and look are request fields you set per job, and a field that cannot apply is rejected rather than ignored.

A free test on your own files · or book a meeting

colourist grade — Backlit daylight at the car doorsilken — Backlit daylight at the car doorsilkencolourist grade
Meridian · an HDR master delivered to a standard screen
The request

A profile, two URLs and the look you want.

Name an HDR to SDR profile, give a presigned URL to read the master and one to write the result, and add the tone fields you care about. An s3:// master can be read through a read-only role you grant instead. The rest of the controls:

tone.highlight_detailtone.styletone.exposuretone.saturationtone.methodtone.gamuttone.black_pointtone.peaktone.local_contrasttone.chroma_recoverytone.chroma_strength

POST /v1/jobsAuthorization: Bearer $SILKEN_KEY
{
  "profile":    "hdr_to_sdr_1080p",
  "input_url":  "https://…/master.mov?X-Amz-Signature=…",
  "output_url": "https://…/title-sdr.mp4?X-Amz-Signature=…",
  "verify_url": "https://…/title-sdr.mp4?X-Amz-Signature=…",
  "tuning": {
    "tone": {
      "style":          "reference",
      "gamut":          "perceptual",
      "local_contrast": 0.6
    }
  }
}
Three routes to SDR

Our tone map, the source’s metadata or your grade.

A ladder job picks one with sdr_route, and the job reports the route it actually used. silken reads the dynamic metadata already in the master to make the SDR version.

  1. 01
    silken’s tone map auto

    The default. The tone curve, gamut handling and look come from your tuning fields, or the reference style when you send none.

  2. 02
    The metadata in the source metadata

    Follows the dynamic metadata already in the master. Without it, the job says so and uses the tone map.

  3. 03
    Your colourist’s grade grade

    Send the SDR master as sdr_source and the SDR versions are encoded from it. It has to match the HDR master’s duration and frame rate, or the job fails rather than guessing.

The output

An SDR file that plays as SDR.

See what the tone map does to real HDR masters, beside the title’s published colourist grade. Test your own files and target screens.

Tagging
BT.709, with the HDR mastering and content-light side data removed, so no player treats it as HDR.
Sources
HDR10 (PQ) and HLG, detected per file, with or without static metadata.
Profiles
hdr_to_sdr_1080p, hdr_to_sdr_4k at the source’s size, and their AV1 siblings; GET /v1/profiles lists them.
Status
Poll GET /v1/jobs/{id}, or receive an HMAC-signed webhook when the file is written.

Questions

Which HDR sources does the API take?

HDR10 (PQ) and HLG sources, with or without static metadata. silken reads the dynamic metadata already in a master to make the SDR version.

How do I call it?

POST /v1/jobs with an HDR to SDR profile such as hdr_to_sdr_1080p, a presigned input URL (or an s3:// path read through a role you grant) and a presigned output URL. Tone controls go in the tuning object, and GET /v1/tuning lists every one.

What does a conversion cost?

Each delivered minute is billed at the published rate for its resolution on the rate card, with no input fee.

Free test on your files

Send us your hardest files.

Send 10-20 files, your hardest HDR titles included. We agree the results date after engineering confirms capacity. You see, next to your current conversion and your colourist’s grade: picture quality on your own screens, speed, failures and the full cost at your volume. Free within the standard scope.