ffmpeg_fields_rejected: why the API refuses ffmpeg flags
ffmpeg_fields_rejected means you sent vf, codec, crf or another ffmpeg field. Sume's media tools build the ffmpeg command themselves; send their own fields.

ffmpeg_fields_rejected means your request body carried a field that looks like an ffmpeg flag, such as vf, filter, ffmpeg, cmd, codec or crf. Sume's media tools compile the ffmpeg command on the server, so you describe the result with the tool's own fields and never send the command.
The lists below are from the Sume docs for each tool, read 2026-09-29: Video filter, Video trim, Video frames and Audio detach.
Which fields trigger the refusal?
Each page lists its own set, and the sets differ slightly. The common core is vf, filter, ffmpeg, cmd, codec and crf; a few tools add more. The refusal names these fields because the server, not the caller, builds the command.
| Tool | Fields named in the refusal |
|---|---|
| Video filter | vf, filter, ffmpeg, cmd, codec, crf, -i and friends |
| Video trim | vf, filter, ffmpeg, cmd, codec, crf and friends |
| Video frames | vf, filter, filter_complex, select, ffmpeg, cmd, codec, crf, preset |
| Audio detach | af, filter, ffmpeg, cmd, codec and friends |
What do I send instead?
Send the tool's documented fields. The pixel work you would have put in vf goes in the video filter's filtergraph, a filters-only graph checked against an allowlist. Timeline 1.0 takes a declarative document, and its docs say callers never send filtergraphs, codecs or shell fragments there.
For a range cut, use trim's start with end or duration. For stills, use at[] or fps. For an audio track, use detach's format, range, channels and sample_rate.
| You wanted | Field to send |
|---|---|
| A pixel filter | filtergraph on POST /v1/video-filter |
| A cut | start plus end or duration on POST /v1/video-trim |
| Output size or fps on a cut | output { width, height, fps }, exact precision only |
| Stills | at[] or fps on POST /v1/video-frames |
| Audio as wav or mp3 | format on POST /v1/audio-detach |
What does a fixed request look like?
This is the same intent as an ffmpeg -vf hflip: the first body is refused, the second is the tool's own field. Run the free check on the video filter before you encode; it validates filter names and structure, not option values, so a program that passes can still fail on the worker.
# Refused: ffmpeg_fields_rejected
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","vf":"hflip"}'
# Accepted shape
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":"hflip"}'Why does Sume refuse raw ffmpeg?
The video filter page says the server compiles ffmpeg on the worker media runtime, and the allowlisted filters take only inline options: none of them reads a file or a socket. Refusing raw flags keeps every request inside that contract.
If a filter you want is not on the list, the check answers invalid_filtergraph and names the token; see ffmpeg filter API: Sume's video filter allowlist and checks. Also note that other filters, such as drawtext and subtitles, are not on the list.
Sources
Related posts
More in Media tools
- FLUX video upscale 1.5x to 3x: limits, and Sume's upscaler
BFL's FLUX Video Upscale runs 1.5x to 3x on clips up to 20 s and 50MB. What its limits are, and how Sume's video upscale endpoint takes a video_url.
- frame_time_out_of_range: fix a video frames request
frame_time_out_of_range means an at value fell outside 0 to the clip length. Sume's video frames tool names the probed duration; keep every time below it.
- Google Business Profile photo size: 720 × 720 px, JPG or PNG
Google recommends Business Profile photos at 720 × 720 px, at least 250 × 250 px, JPG or PNG, 10 KB to 5 MB. What that means for cover, logo and posts.
- Google Play feature graphic size (1024×500) and AI images
Google Play asks for a 1024×500 feature graphic. Sume's ChatGPT Image 2.5 cannot output that exact size, so generate the same shape larger and resize.
Written by Sume