Experimental: Contact Us
This surface is directional and may change before public release. Contact Spiral if you want to use it in an early workflow.
The Video Extension is intended for video catalogs where users need to query metadata, clip ranges, sampled frames, and decode policies without decoding entire videos up front.
Planned table functions
| Function | Purpose |
|---|---|
video.scan(path) | Discover video files or read a video manifest. |
video.clips(path) | Produce clip-level rows with start/end metadata. |
video.frames(path, every) | Produce deferred frame references at a sampling interval. |
video.windows(path, window, stride) | Produce deferred temporal windows. |
video.decode(frame_ref) | Materialize selected frames or windows. |
These names are preview syntax. The functions are not registered in the current video plugin.
Output shape
Frame-oriented functions should produce rows like:
| Column | Meaning |
|---|---|
video_id | Stable video id. |
path | Local path or object URI. |
timestamp_ms | Frame timestamp. |
frame_index | Frame number when available. |
duration_ms | Video or clip duration. |
frame_ref | Deferred frame reference. |
Example shape
SELECT video_id, frame_ref
FROM video.frames('s3://bucket/videos/', every => '2s')
LIMIT 100;Notes
- Metadata and sampling should be plan-visible before decode.
- Decode policy should document frame format, resize policy, device placement, and whether timestamps are exact or nearest-frame.
- Shot-boundary and scene-detection outputs should be documented as separate table functions if they become public.
Last updated on