> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pureframe.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Processing Lifecycle

> What happens inside Pureframe AI's pipeline while a video is being indexed.

Once uploaded, a video moves through a background pipeline before it's searchable. See [Upload Videos](/video-processing/upload-videos) for the API calls that trigger and poll it, and [Processing Status](/video-processing/processing-status) for the `status` values a job moves through.

## Pipeline stages

1. **Probe** — duration, resolution, fps, and codec are read from the file
2. **Transcription** — the full audio track is transcribed by Whisper and written as timestamped speech segments
3. **Scene detection** — shot boundaries are found via frame-difference analysis (CPU-only, runs for every plan). Cut points are added to the frame extraction grid so shots aren't missed by the fixed interval alone
4. **Frame extraction** — frames are pulled at regular intervals (every 5 seconds) plus at every detected cut, and scanned for CSAM before anything else touches them
5. **Visual embedding** — each extracted frame is encoded into a vector (see [Embeddings](/video-processing/embeddings))
6. **Indexing** — vectors and transcript segments are written to the vector store and Postgres, tagged with `video_id` and `collection_id`
7. **Scene labeling** *(Pay as you go and Enterprise plans)* — a representative frame from each shot is classified into scene labels, and optionally captioned, then indexed as `scene` segments
8. **OCR** — frames are sampled more densely (every 1.75s) and scanned for on-screen text, indexed as `ocr` segments

Once every stage completes, the job's status flips to `done` and the video becomes searchable.

<Note>
  Scene labels and captions are Pay as you go/Enterprise features — a `scene`-type match in search results implies the source video was indexed on a paid plan. Frame, transcript, and OCR indexing run the same way on every plan.
</Note>

## Processing time

Typical processing time is **1–3 minutes per 10 minutes of video**. Actual time depends on server load and video complexity — a video with long stretches of speech takes longer to transcribe than a silent one of the same length.

## Partial failure handling

Frame extraction and embedding happen per-frame — if a handful of frames fail to decode, the pipeline skips them and continues rather than failing the entire job. Scene labeling and OCR are best-effort enrichment stages: if either fails outright, the job still completes with frame and transcript indexing intact.

## Re-indexing

If Pureframe AI ships a new embedding model version, existing videos can be re-embedded without re-running transcription — frames already extracted and stored are simply re-encoded with the new model. This keeps re-indexing fast even for large libraries.
