Gemini 4 Argon video costs double Dec 1. Shrink the input.

Google made gemini-4-argon generally available on October 13, 2026, and it takes video as input. The introductory token price runs out on November 30. Wire an hour-long recording into it today and the same pipeline costs twice as much in six weeks, and the fix isn't a cheaper model.
Quick answer: Gemini 4 Argon video input is billed at $2 per 1M tokens through November 30, 2026 and $4 per 1M from December 1, and one hour of footage at default settings is roughly 1,044,000 tokens, so your bill is set by how much video you hand it, not by the model. Shrink the input first: ffmpeg -ss 00:12:30 -i in.mp4 -t 90 -vf "fps=0.2,scale=640:-2" -an out.mp4 trims to the window that matters, samples one frame every five seconds, and drops the audio track. FFmpeg Micro runs that same prep as one API call, no servers to run, metered per second of the segment it actually processes.What Argon charges you for a video, exactly
Argon accepts text, images, video, audio, and PDFs into a 1,048,576-token context and returns text. Google's model card prices it at $2 input / $10 output per million tokens through November 30, then $4 / $20 from December 1. Cached input doubles with it, $0.10 to $0.20.
Video becomes tokens through two meters at once. Google's video understanding docs say frames are sampled at 1 FPS by default, and the media resolution page prices each frame at 258 tokens, or 66 with media_resolution set to low. Audio runs separately at 32 tokens per second.
Google's own token counting page gives a flat 263 tokens per second instead, against 290 from the per-frame math at 1 FPS (258 + 32) and 98 at low resolution. Use 263 for a ballpark, per-frame when you're deciding what to change.
Two ceilings matter: Argon takes roughly 45 minutes of video with audio, roughly an hour without, and 10 videos per prompt. Inline base64 is capped under 100 MB; the File API takes 2 GB free, 20 GB paid. We broke those down in The Gemini video file limit isn't one number. It's four.
One hour of footage, priced six ways
Take a 60-minute 1080p screen recording with speech, the shape of input an agent pipeline actually gets handed. Priced by what you send, at both rates:
| What you send | Tokens | Through Nov 30 | From Dec 1 |
|---|---|---|---|
| Full hour, default resolution, with audio | 1,044,000 | $2.09 | $4.18 |
| Full hour, `media_resolution: low`, with audio | 352,800 | $0.71 | $1.41 |
| Full hour at 0.2 FPS, low res, no audio | 47,520 | $0.10 | $0.19 |
| Audio track only, full hour | 115,200 | $0.23 | $0.46 |
| A 90-second window, default resolution, with audio | 26,100 | $0.05 | $0.10 |
| 12 stills at low resolution | 792 | $0.0016 | $0.0032 |
An hour of default-resolution video is 1,044,000 tokens, the whole context window with about 4,000 left for your prompt. You can't send it anyway: an hour with audio is over the 45-minute ceiling.
Run 200 of those recordings a month and raw costs $418 today, $836 in December. Trimmed to a 90-second window, it's about $10 today and $21 in December. Prepped after the price rise costs a quarter of raw before it.
Five prep levers, as a command and as one API call
Five levers matter, one per multiplier: duration, pixels per frame, frames per second, frames total, or the visual stream entirely. Stack the ones your task tolerates. The general case is in Don't send raw video input to an AI model. Prep it in FFmpeg.; below are the Argon-specific numbers.
Trim to the window that matters
Trimming is the biggest lever because it multiplies against everything else. Put -ss before -i so FFmpeg seeks instead of decoding from zero:
ffmpeg -ss 00:12:30 -i recording.mp4 -t 90 -c copy window.mp4
The same job as one API call:
curl -X POST https://api.ffmpeg-micro.com/v1/transcodes \
-H "Authorization: Bearer $FFM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": [{ "url": "https://cdn.example.com/recording.mp4" }],
"outputFormat": "mp4",
"options": [
{ "option": "-ss", "argument": "00:12:30" },
{ "option": "-t", "argument": "90" },
{ "option": "-c", "argument": "copy" }
]
}'
You get back a job id with status: "pending"; poll GET /v1/transcodes/{id} until it reads completed and take output_url.
FFmpeg Micro meters video processed per second, with no rounding up to the minute, so pulling a 90-second window out of an hour-long source bills as 90 seconds, not an hour. That's 9 tokens. Two hundred of those trims is 1,800 tokens, inside the 2,500 a $19.99 Starter plan grants monthly, and failed jobs are never billed.
Drop to the lowest resolution the task tolerates
Pixel downscale and media_resolution: low are different knobs, and only one moves tokens. The request flag takes each frame from 258 tokens to 66 no matter what you upload. Downscaling before upload saves bandwidth and upload time, which matters on a 2 GB source, but not the per-frame count. Google's caveat: low resolution costs fine text legibility, so for reading a dashboard or a receipt, keep frames at default and cut duration.
Reduce the frame rate
Frame rate beats everything on long static footage: at 1 FPS an hour is 3,600 billable frames, and a screen recording of someone scrolling doesn't change meaningfully 3,600 times:
ffmpeg -i window.mp4 -vf "fps=0.2,scale=640:-2" -an \
-c:v libx264 -crf 28 prepped.mp4
fps=0.2 keeps one frame every five seconds, taking an hour from 3,600 frames to 720. Argon can also do this server-side: videoMetadata accepts startOffset, endOffset, and fps, so you can ask for fps: 0.2 without touching the file. Prep wins when the file also has to get smaller to upload at all.
Send stills instead of the clip
Twelve well-chosen frames answer "what happens in this video" for plenty of agent tasks, at 792 tokens instead of 1,044,000. Use scene detection so you get the moments that changed, not twelve frames of the same slide:
ffmpeg -i recording.mp4 \
-vf "select='gt(scene,0.3)',scale=640:-2" \
-fps_mode vfr -frames:v 12 -q:v 3 frame_%02d.jpg
Use -fps_mode, not the deprecated -vsync, which doesn't behave identically. To send one image instead of twelve, the tile filter packs them into a contact sheet: fps=1/300,scale=640:-2,tile=3x4 gives twelve frames spanning an hour in a single JPEG. The API shape for both is in the thumbnail recipe.
Pull the audio out when only speech matters
Audio-only input is 32 tokens per second against 290 for video with audio, an 89% cut, and for "summarize this call" it loses nothing you were using. Gemini downsamples audio hard on ingest, so a 320 kbps stereo track buys you upload time and nothing else:
ffmpeg -i window.mp4 -vn -c:a libmp3lame -b:a 64k -ac 1 -ar 16000 speech.mp3
The extract-audio recipe has the API body. Order matters for your bill: trim first, then extract from the trimmed clip, because extracting from the full hour meters the full hour.
Where the prep node goes in n8n
n8n's Google Gemini node has an Analyze Video operation that takes a binary or a file reference, with no prep step inside it. Prep has to be its own node upstream. A working four-node shape:
- Trigger with the source URL (webhook, Drive watch).
- HTTP Request node to
POST https://api.ffmpeg-micro.com/v1/transcodeswith the trim and downscale options. - A poll loop: HTTP Request to
GET /v1/transcodes/{{ $json.id }}behind a Wait node, untilstatusiscompleted. - Google Gemini node, Analyze Video, pointed at the signed output URL.
n8n Cloud can't run FFmpeg locally and has no Execute Command node, so step 2 is an HTTP call either way. Why n8n says "No usable ffmpeg was found" covers the self-hosted version. Full workflow JSON is in the n8n Cloud walkthrough.
When to skip the prep entirely
For a single three-minute clip you analyze once, prep is wasted motion. Set videoMetadata offsets and media_resolution: low in the request: 180 seconds at low resolution with audio is 17,640 tokens, about $0.04.
Google's agentic video understanding is the other reason to skip. It reads the transcript first and loads visual segments at higher frame rate only where they're needed, cutting token usage up to 88% at no extra fee. It's off by default on Argon. Coverage of the launch notes it isn't recommended for short clips or broad full-video summaries, where static mode is faster.
Preprocessing earns its place where both of those stop:
- The file is over 100 MB and you want inline data, or over 20 GB and the File API won't take it.
- The source runs past the 45-minute-with-audio ceiling and has to be split regardless.
- Upload time is the bottleneck, not tokens. Server-side
fpsdoesn't make a 4 GB file travel faster. - The input you want is stills or an audio track, which Argon can't produce for you.
- The clip has no usable speech, which agentic mode's transcript pass needs.
- You're sending the same source to many prompts, or need more than 10 videos in one prompt.
Common pitfalls
A few prep mistakes cost real money or accuracy:
-ssbefore-iseeks fast but lands on the nearest keyframe, so with-c copyyour window can drift a second or two. Move it after-iand re-encode if the boundary matters.-c copyand-vfdon't combine. Any filter means a re-encode, so trim with copy in one pass and filter in a second.scale=640:-1can produce an odd height that libx264 rejects. Use-2to round to an even number.-anstrips the audio that agentic mode's transcript pass needs. Don't drop audio and enable agentic video in the same change.- The December 1 change is to the price, not your token count. A pipeline measured in October bills the same tokens for double the money.
FAQ
What does one hour of video cost as Gemini 4 Argon input?
One hour of video at Argon's default settings is about 1,044,000 tokens: $2.09 through November 30, 2026 and $4.18 from December 1. That's 1 FPS sampling at 258 tokens per frame plus 32 tokens per second of audio, and it fills the 1,048,576-token context almost exactly.
Does media_resolution: low make FFmpeg prep unnecessary?
Setting media_resolution: low cuts per-frame cost from 258 tokens to 66, but it doesn't touch duration, frame rate, or file size. Those multipliers stack with low resolution: an hour at low resolution is still 352,800 tokens, while the same hour trimmed to 90 seconds is 26,100 at full resolution.
Should I send audio instead of video to Gemini?
Send audio alone when the task only needs speech, because audio is 32 tokens per second against 290 for video with audio at default resolution. You give up on-screen text, UI state, faces, product shots. For call summaries that's no loss; for "what did the user click" it's the whole task.
Does the preprocessing step cost more than the tokens it saves?
Trimming a 90-second window out of an hour-long recording costs 9 FFmpeg Micro tokens, because billing runs per second of video processed with no rounding to the minute. That trim saves about $2.04 of Argon tokens today and $4.08 after December 1, so the prep pays for itself on the first video.
If an agent is calling Argon rather than a workflow, hand it the prep too: the FFmpeg Micro MCP server exposes trim, downscale, frame extraction, and audio extraction as tools your agent calls before it uploads, over OAuth with no API keys in the config. The free tier is 200 tokens, about 33 minutes of input video, no card, so you can price your own footage both ways before December 1: sign up free.
About Javid Jamae
Founder & CEO at FFmpeg Micro
Javid is a software engineer, author, and entrepreneur with over 25 years of professional software development experience across enterprise, startup, and consulting environments. He founded FFmpeg Micro to make video processing accessible to developers through a simple, automation-first REST API.
You might also like

Your 4K AI video isn't TikTok-ready. Convert it to 1080x1920
Convert 4K video for TikTok: downscale 10-bit AI output to 1080x1920 8-bit SDR H.264, cap the bitrate, normalize audio. FFmpeg command plus one API call.

Run an ONNX Upscaler in FFmpeg 9's DNN Filter Graph
FFmpeg onnx dnn filter in 9.0: the real dnn_processing chain, NCHW float32 model limits, silent CUDA-to-CPU fallback, and what hosting it actually costs.

Video Encoding
Video encoding for pipelines, not streaming services: the three settings that matter, the exact FFmpeg command, the one-call API version, and encode costs.
Ready to process videos at scale?
Start using FFmpeg Micro's simple API today. No infrastructure required.
Get Started Free