Детектор сцен
Бросьте видео. Получите каждую склейку, с миниатюрой и тайм-кодом для каждого плана — найдено на вашей машине, без загрузки.
Сохранено. Life2Film делает весь монтаж сам: выбирает лучшие моменты из галереи и складывает их под музыку, прямо на iPhone. Скачать Life2Film для iPhone
Файл читает и перекодирует ваш собственный браузер. Ни один запрос никуда его не отправляет — у этой страницы просто нет сервера, куда его загружать.
Эти инструменты делают один шаг вручную. Life2Film, наше приложение для iPhone, само монтирует фильм из всей галереи, прямо на телефоне. Скачать Life2Film для iPhone
Вопросы
Видео загружается на сервер?
Нет. Браузер декодирует его локально, канвас читает пиксели, а WebAssembly их сравнивает. Никуда ничего не отправляется — у этой страницы просто нет сервера, куда отправлять. Поэтому нет ни ограничения по размеру, ни очереди.
Как он находит склейки?
Он выбирает кадры по всему видео и смотрит, насколько картинка меняется от выборки к выборке. Склейка — это разрыв: цвет и яркость прыгают разом, а не плывут, как при панораме или наплыве. Детектор ищет такие скачки и сообщает границы между ними.
Ловит ли он наплывы и затемнения?
Отчасти. Жёсткая склейка однозначна и находится надёжно. Медленный наплыв по построению — постепенное изменение, той же формы, что и движение камеры, поэтому может оказаться чуть раньше, чуть позже или слиться с соседним. Быстрые панорамы тоже читаются как склейки. Считайте результат списком планов для проверки, а не приговором.
Что за оценка качества у каждого плана?
Та же покадровая оценка, по которой приложение Life2Film решает, что оставить: резкость, экспозиция, контраст, цветность и энтропия, сведённые в одно число. Это грубая сортировка того, на какие планы стоит взглянуть ещё раз, а не суждение о том, что интересно.
Сколько это занимает?
Он проходит видео перемотками к каждой точке выборки, и каждая стоит десятки миллисекунд. Минутный клип обрабатывается за несколько секунд. Длинные видео выбираются реже, чтобы ожидание оставалось разумным: список планов сохраняет точность около половины секунды.
Смотрите также
Другие инструменты
Встроить в свой проект
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)); Add shot-boundary detection to my project, running in the browser without uploading the video.
Requirements:
- Use the "life2film-engine" npm package (WebAssembly) for detection and the browser's own decoder for
frames: <video> plus a canvas works everywhere and needs no WebCodecs.
- Sample frames at ~64 px wide, take the mean RGB of the centre column, and pass pixels + timestamps
to detect_scenes_slick.
- Sampling rate decides accuracy far more than the algorithm does. Measured against a video with cuts
at known times: 2 samples/second put boundaries 1-3 seconds out and all sixteen algorithms failed
the same way; 10/second put them on the frame. Do a coarse pass, then refine around each candidate
at ten times the resolution and take the largest frame-to-frame change.
- Show a thumbnail per shot. The fastest way to check a shot list is to look at it, and a boundary
that is wrong is obvious in a picture and invisible in a number.
- Score each shot with score_frame and take the median, not the mean.
- Export as EDL, OTIO, FCPXML, Audacity labels, CSV or JSON, at a frame rate the user chooses.
- Cap the input length: each sample is a seek costing tens of milliseconds.
Reference implementation: https://life2film.com/tools/scene-detector/
The engine is documented for agents, and every tool page is available as
markdown by adding .md to its address.