Primate Vision vs. OpenAI (2026): A Video API vs. a Frame-Extraction Workaround
Here’s a fact that surprises almost everyone I say it to: there is no video API at OpenAI. Not for files, not for URLs, not for streams. Every “GPT watches video” demo you’ve seen is a caller-built pipeline that rips frames out of a video and mails the model a stack of stills.
And the direction of travel is away from video, not toward it. The only video-related API OpenAI ever shipped — Sora 2, generation-only — was deprecated March 24, 2026 and shuts down September 24, 2026 (deprecations). The SDK feature request asking for the video-input parity Gemini already has is still open (openai/openai-node#1778).
None of this makes OpenAI bad. GPT-5.6’s visual reasoning over stills — charts, receipts, screenshots, documents — is the best available, and I’ll say so repeatedly below. But if your input is video — moving, time-ordered, possibly live — OpenAI doesn’t sell the product. Primate Vision is exactly that product: live WebRTC streams and 2 GiB uploads at native frame rates, returning a deterministic verdict — yes / no / indeterminate — with calibrated confidence, timestamped evidence, and published latency.
This is part of our full 2026 video-AI landscape comparison.
Two different questions
OpenAI Vision answers: “What do you see in this image — and what should we do about it?” Vision is a modality of their flagship reasoning models, not a video product — “Vision is the ability for a model to ‘see’ and understand images,” per their own docs. Feed it stills (up to 1,500 per request, 512 MB total) and get world-class open-ended understanding, OCR, comparison, extraction, with the whole LLM ecosystem wrapped around the answer. (images & vision guide)
Primate Vision answers: “Is X happening in this video — and can you prove it?” Point it at a live stream (managed WebRTC) or a file (upload or URL ingest, up to 2 GiB), ask in plain English, and get a verdict from a closed vocabulary (yes / no / indeterminate), a calibrated 0–1 confidence score, timestamped evidence segments, and an annotated overlay evidence video — at 45ms p50 per-frame inference, published on a public /performance page.
One of these products accepts video. The other genuinely does not.
The head-to-head
| Capability | Primate Vision | OpenAI |
|---|---|---|
| Video file upload | ✅ MP4/MOV up to 2 GiB, presigned or URL ingest | ❌ images only — ≤512 MB, ≤1,500 images/request (docs) |
| Live stream input | ✅ managed WebRTC, native frame rate | ⚠️ Realtime API = audio + still images, no video track (realtime guide) |
| Published latency | ✅ 45ms p50 / 316ms p95, 11.8 fps sustained | ❌ none; “Fast mode” claims only “up to 2.5× faster… at twice the price” (changelog) |
| Verdict contract | ✅ deterministic yes/no/indeterminate + calibrated 0–1 confidence | ⚠️ JSON schema forces the shape, but confidence is model-generated text and answers are stochastic |
| Timestamped segments | ✅ per-clip start/end + confidence | ❌ no video input → no native timestamps; caller injects frame labels as text |
| Evidence artifacts | ✅ annotated overlay evidence video | ❌ text only |
| General reasoning / OCR / documents | ❌ visual verdicts only — no OCR, no transcription | ✅ world-class; plus transcription APIs from $0.0045/min (pricing) |
| Spatial localization | ❌ overlay only, no bbox JSON | ⚠️ model-emitted boxes, but their own docs warn the model “struggles with tasks requiring precise spatial localization” |
| Batch + webhooks | ✅ webhooks (signed, retries, redelivery) + Prefer: wait; 2–10 prompts/video, 50% off after the first |
✅ Batch API at 50% off; platform webhooks — genuinely strong |
| Agent accessibility | ✅ llms.txt, markdown docs twins, MCP server, sandbox key in one POST | ✅ best-in-class: llms.txt, .md docs, MCP in Responses API, 6 SDKs, Terraform |
“Just extract the frames” is not a video pipeline
The standard workaround — ffmpeg the video into 1fps stills, batch them into requests — is what every OpenAI video tutorial actually teaches, including OpenAI’s own cookbook. Here’s what it costs you beyond dollars:
- Motion is invisible. Anything that happens between samples never reaches the model. A fall, a thrown punch, a package grab takes well under a second.
- Long video doesn’t fit. The 1,500-images-per-request cap means a 1-hour video at 1fps must be chunked into 3+ requests, each blind to the others’ temporal context — a ~25-minute ceiling per request. (docs limits)
- Time is a string. No temporal primitives — no segments, no event timeline. You label frames “t=00:14:32” in text and trust a stochastic model to echo them back accurately.
- You own the pipeline. Frame extraction, chunking, retries, timestamp bookkeeping, cross-chunk reconciliation — all yours to build and operate, forever.
That’s not a video pipeline. That’s a stack of photographs and a prayer.
On Primate Vision the equivalent is one API call: POST /v1/analyses with a video and a question; a webhook (or Prefer: wait) delivers verdict + confidence + timestamped clips + an annotated evidence video.
Realtime is real-time for voice, not for video
OpenAI’s Realtime API is genuinely GA (the beta interface was removed May 12, 2026) and genuinely impressive — WebRTC/WebSocket/SIP voice agents that now accept still images in-session, priced at $5.00/1M image input tokens. But there is no video track and no continuous video-stream input; a client pushing periodic snapshots is a workaround, not a product. (realtime guide; pricing; corroborated on Microsoft Learn)
Primate Vision’s live lane is managed WebRTC at native frame rates, with mid-stream prompt changes over one WebSocket message and session caps the API tells you about up front (up to 1 hour per session on top plans).
Verdicts: a contract vs. a conversation
Ask GPT-5.6 “did anyone enter the loading zone?” over a frame stack and you get prose — or, with Structured Outputs, JSON shaped like an answer. For exploratory questions that flexibility is wonderful. But the confidence number inside that JSON is generated text, not a calibrated score; the answer is stochastic; and OpenAI’s own limitations list says the model “may generate incorrect descriptions or captions.” (docs limitations)
It’s not that GPT-5.6 is a weak model — it’s that a language model sampling tokens is the wrong instrument for a measurement. Primate Vision’s verdict is a different kind of object: an answer drawn from a closed vocabulary — yes / no / indeterminate — never free-form generation, computed by similarity scoring against the video rather than sampled from an LLM, with a calibrated 0–1 confidence, model version pinning (darwin-1.3) so behavior changes only when you choose, and a fully deterministic test mode for CI. And every yes ships with proof: timestamped clips plus an annotated overlay evidence video a human can watch and forward.
Pricing: token math vs. a flat meter
OpenAI bills per token, and video has no price because video has no product. Frames are tokenized — GPT-5.x counts 32×32-pixel patches, so a 720p frame at high detail is ~920 input tokens — billed at the model’s rate (gpt-5.6-terra: $2.00/1M input; gpt-5.6-sol: $5.00/1M). Our normalized estimate for DIY frame-by-frame analysis at 1fps: roughly $1.84/camera-hour (terra, low detail) up to $6.62 (terra, high) or $16.56 (sol, high) — estimates; they exclude output tokens, prompt overhead, and the chunking penalty, so real cost runs higher. (pricing; tokenization per the vision guide)
Primate Vision has two lanes, stated plainly:
- Metered — $0.01 per second of source video ($0.60/min), flat and fps-independent. Queued time free; failed jobs free. A 30-second clip → verdict + confidence + timestamps + evidence video = $0.30. A
validate_onlydry-run estimates cost before you spend a credit. - Enterprise — contact us for 24/7 continuous monitoring and camera fleets: dedicated capacity or on-site deployment at a small fraction of the metered rate, under highly discounted enterprise plans.
Normalized honestly: at 1fps stills, OpenAI’s DIY route works out ~5–20× cheaper per raw hour (estimate) than $36/camera-hour† at Primate’s metered rate — if your use case tolerates 1fps sampling, no temporal continuity, stochastic answers, and building the entire frame pipeline yourself. The meters buy different things: their tokens buy raw model reads of stills; our seconds buy answered questions about video, with evidence, at native frame rate, live or on demand. You don’t buy camera-hours on our metered lane. You buy verdicts.
† Metered rate normalized for comparison. Primate does not sell 24/7 continuous monitoring at the metered rate — continuous and fleet workloads use enterprise plans; contact us.
Choose OpenAI instead when…
These are real lanes, and they’re wide ones:
- Your input is stills or documents, not video. Screenshots, photos, charts, receipts, PDFs-as-images — GPT-5.6’s open-ended visual reasoning plus OCR is the best available, and Primate Vision doesn’t do any of it (no OCR, no transcription, no open-ended description).
- You need reasoning around the answer. Explain, compare, extract, then call a tool and act — one model, one vendor. Primate answers one question about one video; it doesn’t write your incident report.
- Sparse sampling is genuinely fine. One screenshot a minute of a screen recording, thumbnail triage, still-image moderation at scale — the Batch API at 50% off makes this very cheap (~$1.84/camera-hour at 1fps low detail, estimate).
- You’re already on the OpenAI / Azure / Bedrock stack and want one vendor for text + vision + audio + agents, with enterprise controls (ZDR, data residency, spend limits) already built.
- You want images inside a voice agent. Realtime image input is GA with published pricing — a conversational agent that glances at a photo mid-call is a real, shipping OpenAI product.
Choose Primate Vision when…
- The input is actually video. Files up to 2 GiB, URL ingest, or live WebRTC — no frame ripping, no chunking, no 25-minute ceiling. OpenAI has no video input path in any API.
- The camera is live. Managed WebRTC at native frame rates with mid-stream prompt changes, versus pushing snapshots into a voice-agent API as a workaround.
- Motion is the point. Falls, intrusions, safety events — things that happen between 1fps samples. Native-frame-rate analysis sees them; a frame stack doesn’t.
- You need an answer, not an essay. A closed-vocabulary yes/no/indeterminate with calibrated confidence beats generated prose when the output feeds an alert, a workflow, or a compliance record.
- You need proof. Timestamped clips plus an annotated overlay evidence video — versus text that says it saw something.
- You need to know cost and latency before you run it. One flat meter plus a
validate_onlydry-run, and published 45ms p50 / 316ms p95 / 11.8 fps / 6.6s session setup. OpenAI publishes no vision latency numbers at all.
Try it
Try it for free — real processing, no card required to start.
Your AI agent can do it for you — right from Claude. Primate Vision ships an MCP server, llms.txt, markdown docs twins, and a sandbox key available in a single POST — your agent can get a key, upload a clip, and read back a verdict without a human touching a dashboard. (Credit where due: OpenAI’s developer platform sets the bar here, and we built to it.)
For 24/7 monitoring and camera fleets: see our enterprise plans.
Method note: every OpenAI claim traces to their live developer docs, pricing page, changelog, and deprecations page accessed 2026-07-31. Estimates are labeled.