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 wants progressive video: its page says interlaced content should be deinterlaced before uploading, with 1080i60 becoming 1080p30. Sume's video-filter cannot do that step. Its filtergraph is checked against an allowlist, I found no deinterlace filter name in the list in the code, and any unknown filter is refused with invalid_filtergraph.
Read 2026-10-01: YouTube Help, Sume's video filter docs and packages/timeline-compiler/src/filter.ts.
What exactly does YouTube say?
Progressive scan (no interlacing) is in the video codec list. The frame-rate section adds that 1080i60 should be deinterlaced to 1080p30, and that 60 interlaced fields per second become 30 progressive frames per second.
What can the Sume filter run?
The code comment on the list describes it as the filters a program may name, chosen so none can read a path or reach a network. Adding a name is described as a contract change.
| Topic | What the docs say |
|---|---|
| Filtergraph | Filters-only ffmpeg graph, applied after ops[] |
| Limits | 2048 characters, 32 named filters |
| Allowlist groups | Tone, blur, geometry, fade, internal compositing |
| Unknown name | invalid_filtergraph; unknown_filter names the token and the allowlist |
| Raw ffmpeg fields | ffmpeg_fields_rejected |
Can trim change the frame rate instead?
output.fps on trim accepts 24, 25, 30 or 60 (exact precision only). That conforms rate, but it is not deinterlacing: nothing in the docs says it merges or interpolates fields, so do not use it as a substitute.
What should I do with interlaced footage?
Deinterlace it before it reaches Sume, then import the progressive file to media.sume.com and do the cut, crop or tone work there. For how the allowlist is structured and what raw flags map to, see the ffmpeg filter allowlist.
Why does a refusal matter here?
Sending a deinterlace filter to the graph will fail fast with a named error rather than silently doing nothing. Treat that as the signal to preprocess elsewhere.
Sources
Related posts
More in Developers
- 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.
- YouTube 1080p bitrate: 8 Mbps, and Sume has no bitrate field
YouTube recommends 8 Mbps for 1080p SDR at 24 to 30 fps and 12 Mbps at 48 to 60. Sume rejects codec and crf fields and exposes no bitrate setting.
- YouTube upload H.264 settings: what Sume's exact trim sets
YouTube lists H.264 High Profile, 4:2:0 and progressive scan. Sume's exact trim re-encodes with libx264 and yuv420p; profile, GOP and CABAC are not fields.
Written by Sume