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`);
}