ffmpeg filter_complex [0:v] in video-filter: refused, labels fine
Sume video-filter refuses stream specifiers like [0:v] in a filtergraph because the server wraps the input and output. Internal labels such as [a] are allowed.

Do not write [0:v] in a Sume video-filter graph. The server wraps your filters as [0:v]...[vout] itself, so a stream specifier is refused as invalid_filtergraph. Internal labels you invent, such as split[a][b], are fine.
This is from the Video filter docs, read 2026-10-01. If an assistant ported an ffmpeg command after the Resolve 21.1 announcement, the leading [0:v] is the line to delete.
Why is [0:v] refused?
A filter_complex string normally names its inputs and outputs. Here the request has exactly one clip, supplied as video_url, so there is nothing to select. The client supplies filters only; the server wraps [0:v] in front and [vout] behind.
Which labels are allowed?
Labels that start and end inside your graph. The docs give split[a][b] as the example.
| Graph fragment | Result |
|---|---|
split[a][b];[a]hflip[c];[b][c]hstack | Accepted: internal labels only |
[0:v]hflip | Refused: stream specifier |
[0:v]split[a][b] | Refused: leading [0:v] |
What does the refusal look like?
The code is invalid_filtergraph; the free check returns it as a diagnostic, so nothing is billed. This sample is refused on its leading label.
curl -X POST https://api.sume.com/v1/video-filter/check \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
"filtergraph": "[0:v]hflip"
}'What should I use instead?
Write the same chain without the outer labels. For a first look at the allowlist, see the filter allowlist post. Clients also cannot send vf, ffmpeg or cmd fields.
Sources
Related posts
More in Developers
- video_filter_too_many_ops: more than 8 ops, use filtergraph
Sume video-filter accepts at most 8 ops. A ninth returns video_filter_too_many_ops; move extra pixel work into the filtergraph, which has its own caps.
- unsupported_filter_op: video-filter ops are dim and crop only
In Sume video-filter, ops[].op must be dim or crop. Another name returns unsupported_filter_op; an extra key on a valid op returns unsupported_filter_op_field.
- Extract frames from a long video API: duration_out_of_range
Video frames fails duration_out_of_range for a source over 300 seconds. Cut a range under 300 seconds with video trim first, then extract frames from it.
- Video frames job succeeded but one frame url is null
If one instant fails to extract, video frames returns that entry with url null and the job still finishes ready. Filter the null entries and ask again for them.
Written by Sume