← Все инструменты

Детектор сцен

Бросьте видео. Получите каждую склейку, с миниатюрой и тайм-кодом для каждого плана — найдено на вашей машине, без загрузки.

Файл читает и перекодирует ваш собственный браузер. Ни один запрос никуда его не отправляет — у этой страницы просто нет сервера, куда его загружать.

Вопросы

Видео загружается на сервер?

Нет. Браузер декодирует его локально, канвас читает пиксели, а WebAssembly их сравнивает. Никуда ничего не отправляется — у этой страницы просто нет сервера, куда отправлять. Поэтому нет ни ограничения по размеру, ни очереди.

Как он находит склейки?

Он выбирает кадры по всему видео и смотрит, насколько картинка меняется от выборки к выборке. Склейка — это разрыв: цвет и яркость прыгают разом, а не плывут, как при панораме или наплыве. Детектор ищет такие скачки и сообщает границы между ними.

Ловит ли он наплывы и затемнения?

Отчасти. Жёсткая склейка однозначна и находится надёжно. Медленный наплыв по построению — постепенное изменение, той же формы, что и движение камеры, поэтому может оказаться чуть раньше, чуть позже или слиться с соседним. Быстрые панорамы тоже читаются как склейки. Считайте результат списком планов для проверки, а не приговором.

Что за оценка качества у каждого плана?

Та же покадровая оценка, по которой приложение Life2Film решает, что оставить: резкость, экспозиция, контраст, цветность и энтропия, сведённые в одно число. Это грубая сортировка того, на какие планы стоит взглянуть ещё раз, а не суждение о том, что интересно.

Сколько это занимает?

Он проходит видео перемотками к каждой точке выборки, и каждая стоит десятки миллисекунд. Минутный клип обрабатывается за несколько секунд. Длинные видео выбираются реже, чтобы ожидание оставалось разумным: список планов сохраняет точность около половины секунды.

Другие инструменты

Build this into your own project

Finding every cut in a video — the same way this page does it, on the user's machine, with no server. Take the code, or hand the prompt to a coding agent.

const engine = await import('https://life2film.com/wasm/va_wasm.js');
await engine.default({ module_or_path: 'https://life2film.com/wasm/va_wasm_bg.wasm' });

// 31 features per frame, from RGB24 pixels
const scored = JSON.parse(engine.score_frame(width, height, rgb24, timestamp, null));

The engine is documented for agents, and every tool page is available as markdown by adding .md to its address.