Skip to main content
Built-in extractor names are a deprecated alias — collections are now created by picking features. This pipeline is selected with features: ["onscreen_text"]. Existing feature_extractor configs keep working; see the migration guide.

Extract on-screen text from your own video

Create a managed namespace and run this pipeline on your own files — recover scrolling and static on-screen text, OCR it, and make it searchable in minutes.

View on GitHub

Runnable reference for this extractor — inputs, parameters, output fields, embedding models, and copy-paste examples. Auto-generated from the live registry.
The scrolling text extractor recovers scrolling or marquee text from video — tickers, lower-third banners, end credits, and legal disclaimers — that no single frame ever shows in full. It detects scrolling bands via phase correlation, stitches frames panorama-style to reconstruct the complete text, then OCRs the panorama with a vision language model (Gemini). Output is payload-only (no vector); pair it with text_extractor if you need semantic search over the recovered text.
View extractor details at api.mixpeek.com/v1/collections/features/extractors/scrolling_text_extractor_v1 or fetch programmatically with GET /v1/collections/features/extractors/{feature_extractor_id}.

Pipeline Steps

  1. Sample frames — extract frames at fps frames per second.
  2. Phase correlation — scan strip_height-pixel strips to measure per-frame pixel shift and detect motion.
  3. Classify bands — a band counts as scrolling when shift exceeds min_shift_px and at least consistency_ratio of frame pairs agree.
  4. Crop — crop each detected band with pad pixels of padding above and below.
  5. Stitch — reconstruct the full scrolling content as a panorama image per band.
  6. VLM OCR — read the panorama with a vision language model (Gemini).
  7. Output — combined text plus per-band metadata (axis, direction, shift).

When to Use

When NOT to Use

Input Schema

Supported input types: VIDEO.

Output Schema

Parameters

Configuration Examples

Performance & Costs

Vector Index

This extractor produces payload-only output — no vector index. The recovered text lives in the scrolling_text field. To make it semantically searchable, run text_extractor against scrolling_text.

Limitations

  • Video only: Accepts video inputs exclusively.
  • No embedding: Output is payload-only; semantic search requires chaining a text extractor.
  • Band-height sensitivity: strip_height should approximate the actual band height for reliable detection.
  • VLM dependency: OCR quality depends on Gemini VLM availability and panorama clarity.