YouTube upload color space: BT.709 for SDR, and Sume trim output
YouTube recommends BT.709 for SDR uploads and unifies similar color matrices. Sume trim has no color-space field, so verify the tags with ffprobe.

For SDR uploads YouTube recommends BT.709 as the color space. Sume's trim and probe docs do not describe a color-space setting or report, so tag the file yourself, and confirm the result with ffprobe before you upload.
YouTube facts are from its recommended upload encoding settings page (undated; read 2026-10-01). Sume facts are from the Video trim and Video inspect docs.
What does YouTube recommend for SDR color?
The page recommends BT.709 for SDR, and lists its transfer characteristics, color primaries and matrix coefficients as BT.709 (H.273 value 1). It says YouTube standardizes functionally similar matrices and primaries before processing: BT.601 and BT.709 TRC are identical and unified to BT.709, and BT.601 NTSC and PAL are unified to BT.601 NTSC. If the upload has an unspecified TRC, YouTube assumes BT.709.
| Property | Recommended for SDR |
|---|---|
| Color space | BT.709 |
| Transfer characteristics (TRC) | BT.709 (H.273 value 1) |
| Color primaries | BT.709 (H.273 value 1) |
| Matrix coefficients | BT.709 (H.273 value 1) |
| Unspecified TRC | YouTube assumes BT.709 |
What does Sume trim do to color?
Exact mode is a frame-accurate re-encode with libx264 and yuv420p. That is the pixel format; the docs do not say which color tags the output carries. The program table has no color-space field, and the server compiles ffmpeg itself, so raw fields such as vf, filter, codec or crf return ffmpeg_fields_rejected. Keyframe mode is a stream copy, so the source's own tags would stay.
How do I check the tags before uploading?
Download the trim result and read its stream tags. An empty or unknown value means the file leaves the color description unspecified, which is the case where YouTube assumes BT.709 for the transfer function.
ffprobe -v error -select_streams v:0 \
-show_entries stream=color_space,color_transfer,color_primaries \
-of default=noprint_wrappers=1 trimmed.mp4What if my source is HDR or a different standard?
Tone-map before you hand the clip to Sume, since there is no color knob on trim. The page snapshot used here stops after the SDR table, so it does not tell me what YouTube does with other color spaces; read the full page for those rows. A related walk-through is Spotify's HDR upload tone-mapped to SDR.
Sources
Related posts
More in Developers
- YouTube closed GOP and 2 B-frames: Sume exposes no GOP fields
YouTube recommends a closed GOP of half the frame rate and 2 consecutive B-frames. Sume video-trim has no GOP or B-frame field and rejects raw ffmpeg flags.
- Deinterlace before YouTube upload: Sume has no deinterlace filter
YouTube says deinterlace 1080i60 to 1080p30 before upload. Sume's video-filter allowlist names no deinterlacer and refuses unknown filters.
- YouTube moov atom and edit lists: keyframe trim vs exact trim
YouTube asks for MP4 with moov first and no edit lists. Sume's keyframe trim is a stream copy; exact re-encodes. The docs do not state moov placement.
- YouTube Opus and Eclipsa Audio uploads vs Sume's WAV and MP3
YouTube now lists Opus and Eclipsa Audio beside AAC-LC for uploads. Sume audio outputs are wav (pcm_s16le) and mp3 only; neither is Opus or Eclipsa.
Written by Sume