# What is the cheapest way to extract embeddings and timestamps from video files?

> The cheapest version of this job is the one you run once.

Canonical URL: https://vivu.ai/guide/what-is-the-cheapest-way-to-extract-embeddings

The cheapest version of this job is the one you run once. Timestamps and embeddings come from two different passes over the same file, and in every setup that gets expensive, the per-unit cost of a pass was never the problem. The problem was running the passes again: on a new model, on a re-encoded master, on the half of the archive somebody forgot. Before comparing options, decide how many times you are willing to reprocess, because that number decides which route is cheapest more than anything on any price page.

## Two outputs, two passes

Timestamps come out of a segmentation step. Speech recognition gives you timecoded text; scene or shot detection gives you timecoded boundaries with no text attached. These are cheap in compute terms and they are the part most archives already have lying around in some form, often as caption files nobody indexed.

Embeddings come from a model pass over something you sampled: frames, short segments, transcript chunks, or a combination. This is where the cost sits, and it scales with sampling density rather than with runtime. One frame per second on a thousand hours is a very different job from one frame per five seconds, and the decision is usually made carelessly by whoever wrote the first script.

## What actually drives the bill

Decoding is not free and is easy to forget. Every file has to be read and unpacked before any model sees it, and on long archival material stored as large mezzanine files, that step alone can dominate.

Sampling density is the lever with the widest range. Halving it halves the model pass and usually costs you less retrieval quality than people fear, because most video does not change much second to second.

Vector storage is small next to the video itself, but it is recurring, and it grows every time you decide to keep a second embedding of everything.

Reprocessing is the line item nobody budgets. Embeddings are tied to the model that made them, and mixing outputs from two models in one index does not work. The day you switch models is the day you pay for the whole archive again.

## The routes, and what each one really costs

Running open-source models yourself moves the bill from a vendor to your own hardware and your own engineering hours. It is the right call when you need to own the model version, when the material cannot leave your infrastructure, and when someone on the team will still be maintaining the pipeline a year from now. That last condition is the one that fails most often.

Hosted extraction APIs remove the pipeline maintenance and give you a per-unit cost you can forecast, which suits archives that are ingested once and queried a lot. The trade is that you are now on someone else's model schedule, and their upgrade is your re-extraction. What exists in this category and what each kind returns is broken down in [the APIs built for indexing and search](https://vivu.ai/guide/what-apis-exist-for-video-indexing-and-search).

Not extracting anything is the third route, and it is the one people skip. If the reason you want vectors is retrieval rather than a model of your own, the pipeline is a means, not a deliverable. [Vivu](https://vivu.ai/platform) indexes each file once after it is uploaded to a project, and the indexing runs on Vivu's side, so there is no embedding job for your team to schedule or re-run. You get answers with timecodes out of it rather than a vector store you operate.

## When you do not need embeddings at all

If every question you ask is about something that was said, transcripts plus decent text search will answer it, and you should spend the money on transcription quality instead. Groups that already pay for clean transcripts of a long back catalogue often find that their real gap is search over the text they already own, not a second modality. What that transcription step costs and where the price varies is worked through in [the per-hour economics of transcription](https://vivu.ai/guide/how-much-does-speech-to-text-transcription-cost).

If the archive is small enough that a person could scrub it in a day, skip this entirely. And if you query it a few times a month, the cost of building and maintaining extraction will not be repaid by the retrieval you get.

## How to decide

Work out your reprocessing multiplier first. If you expect to index once and change nothing for years, self-hosting an open-source pass is hard to beat and the engineering time amortizes. If you expect model churn, new footage weekly, or an owner who might leave, the cheapest thing is the one you do not operate, because the second run of a pipeline you built is where the savings from the first run go. Either way, extraction is only half of a working system: the other half is whatever consumes the vectors, and if that half will be structured metadata rather than a search index, [automatic tagging of video files](https://vivu.ai/guide/what-software-can-automatically-tag-video-files) is the closer comparison.

## FAQ

### Do I still need embeddings if I already have transcripts?

Only if you need to find things that were never spoken. Transcripts answer questions about words, and for a lecture archive or a podcast that is most of what anyone asks. Embeddings over frames cover the visual side: a product on a table, a location, a gesture, anything nobody narrated. If your search log is entirely quotes and topics, adding a visual index is expense without a matching question.

### What happens to my existing vectors if I switch embedding models?

They stop being comparable. Vectors from two different models sit in incompatible spaces, so a query embedded with the new model will not match anything embedded with the old one, and mixing them silently degrades results rather than throwing an error. Switching means re-embedding everything you want searchable, which is why the model choice is really a commitment to a reprocessing bill at some future date.

### Can I get timestamps without running any model?

Sometimes. Container metadata, chapter markers, caption sidecars, and edit decision lists from the original project all carry timing information you already paid for once. It is worth auditing what your files and project archives contain before commissioning any extraction, since a lot of teams generate transcripts for material that shipped with captions.

### Do I need a vector database for this?

Not necessarily at small scale. A vector extension on the database you already run is enough for many archives, and it keeps the vectors next to the metadata you want to filter on, which matters more than raw search speed for most workloads. A dedicated vector store becomes worth its operational weight when the index outgrows one machine or when you need it separate from the application database for reasons that have nothing to do with video.
