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


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
{
"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
}
}
}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.
- 01silken’s tone map
autoThe default. The tone curve, gamut handling and look come from your tuning fields, or the reference style when you send none.
- 02The metadata in the source
metadataFollows the dynamic metadata already in the master. Without it, the job says so and uses the tone map.
- 03Your colourist’s grade
gradeSend 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.
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_4kat 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.
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.