Skip to main content

Function: detectScenes()

detectScenes(opts): AsyncGenerator<SceneBoundary>

Defined in: packages/agentos/src/api/detectScenes.ts:115

Detects scene boundaries in a stream of video frames.

Creates a SceneDetector with the supplied configuration and yields SceneBoundary objects as visual discontinuities are detected. The generator completes when the input frame stream is exhausted.

Suitable for both pre-recorded video (extract frames via ffmpeg, then pipe as an async iterable) and live streams (webcam, security camera, screen capture).

Parameters​

opts​

DetectScenesOptions

Scene detection options including the frame source.

Returns​

AsyncGenerator<SceneBoundary>

An AsyncGenerator yielding scene boundaries as they are detected.

Example​

// Pre-recorded video
const boundaries: SceneBoundary[] = [];
for await (const boundary of detectScenes({ frames: extractFrames('video.mp4') })) {
console.log(`Scene ${boundary.index} at ${boundary.startTimeSec}s (${boundary.cutType})`);
boundaries.push(boundary);
}

// Live webcam with custom thresholds
for await (const boundary of detectScenes({
frames: webcamFrameStream,
hardCutThreshold: 0.4,
minSceneDurationSec: 2.0,
})) {
console.log(`Motion detected at ${boundary.startTimeSec}s`);
}