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.

4 min readSume
All posts

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.

Video filter facts from the Sume docs, read 2026-10-01.
TopicWhat the docs say
FiltergraphFilters-only ffmpeg graph, applied after ops[]
Limits2048 characters, 32 named filters
Allowlist groupsTone, blur, geometry, fade, internal compositing
Unknown nameinvalid_filtergraph; unknown_filter names the token and the allowlist
Raw ffmpeg fieldsffmpeg_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

All Developers posts

Written by Sume