Trim or filter on a PNG or audio file: the not-a-video refusal
Sume video trim and video filter refuse a still image or a file with no video stream. The reason codes, the probe fields that predict them, and the right tool.

Point Sume video trim at a PNG, or video filter at an audio-only file, and the job stops with a named reason: trim_source_not_video for trim and filter_source_not_video for filter. Both carry next_action: use_video_source. The worker checks that the probe found a video stream and that the file is not a still image, and it does this before any ffmpeg encode.
The API also screens by type earlier. At submit it sends a HEAD request to the media.sume.com URL, and a response that is not a video content type returns unsupported_media_type with the content type it saw. The worker reasons cover files that pass that screen, such as a video container that holds only audio or a one-frame clip.
How a still is recognized
The probe sets is_still from the container, codec, and duration, with no audio and a video stream that is really an image. Video inspect returns is_still in probe, so you can read it ahead of time.
Pick the right tool
| You have | Use |
|---|---|
| A PNG or JPG you want in a video | Timeline 1.0, where stills are static holds |
| An audio file | Audio tools; audio detach needs a video |
| A video served with the wrong content type | Re-export it as MP4 and import it again |
Timeline is the one surface that takes a still, as a static hold. The Timeline 1.0 docs say a motion on a still is accepted but ignored, with a motion_ignored warning, not a failure.
A quick guard in an automation: read has_audio and is_still from one inspect call, then route. It costs less than a failed job and keeps the error log readable.
Sources
Related posts
More in Media tools
- True pixel art from an AI image: quantize to 16 colors in Pillow
AI models draw pixel-art looks at full resolution. Downscale with NEAREST, quantize to 16 colors without dither, and upscale clean to get real pixel art.
- Join TTS lines into one track: match output_format before concat
Sume timeline audio concat joins 1 to 20 parts but needs one channel layout. Set the same TTS output_format on every line, then concat once.
- TTS mp3 bit rate: 32k to 192k file size per minute for voice audio
Sume TTS 1.0 accepts mp3 bit_rate 32000, 64000, 96000, 128000 or 192000. See the size per minute of each, plus a two-take listening test before you pick one.
- Two-color duotone poster from an AI image with ImageOps.colorize
Turn a Sume image into a duotone: grayscale, autocontrast, then ImageOps.colorize with a dark and a light brand color. Code and ink pairs inside.
Written by Sume