Извлеките идеальный кадр из любого видео
Шагайте по настоящим кадрам, забирайте целую серию с интервалом или дайте графику различий найти склейки. Всё декодируется в этой вкладке, и файл никуда не уходит.
Перетащите видео или нажмите для загрузки
MP4 · WebM · MOV и всё, что умеет декодировать ваш браузер — файл не покидает устройство
Как это работает
Бросьте видео
Всё, что браузер умеет декодировать. Размер, разрешение и настоящая частота кадров читаются из самого файла — поле fps исчезло, потому что это была догадка.
Встаньте на кадр
Стрелки шагают целыми кадрами, и каждый шаг ждёт смены картинки. Колесо приближает, чтобы проверить резкость, а Alt показывает последний снимок для сравнения.
Или заберите целую серию
Каждые N секунд, N равномерно или каждый кадр диапазона. Сканер сцен рисует разницу между выборками, чтобы вы двигали порог, а не верили ему на слово.
Экспорт
PNG, JPG или WebP, в полном размере или уменьшенные, по одному или архивом. Галерея показывает, сколько памяти держит, и передаёт кадр прямо в следующий инструмент.
Снимок ждёт кадр
Перемотка асинхронна, поэтому рисовать видео сразу после перехода — значит взять то, что было на экране раньше, обычно предыдущий кадр. Здесь каждый снимок дожидается реально представленного кадра.
Частота кадров измеряется
requestVideoFrameCallback сообщает время презентации каждого кадра, поэтому частота берётся из видео, а не из поля, которое надо было заполнить. Обычные частоты подгоняются, но 23,976 остаётся 23,976.
Пакетное извлечение
Каждые N секунд, N равномерно по диапазону или каждый кадр между двумя точками. Количество известно до старта, и всё останавливается по первому требованию.
Поиск склеек
Разница яркости между уменьшенными выборками, нарисованная кликабельным графиком. Порог — число, которым управляете вы, а не скрытый вердикт.
Зум к курсору
Зум колесом до 12×, перетаскивание для панорамы, двойной щелчок для сброса — проверить резкость или прочитать мелкий текст, прежде чем выбрать кадр.
Память на виду
Полноразмерные blob-ы копятся быстро, поэтому лента показывает миниатюры, каждый кадр называет свой вес, а сумма предупреждает, пока вкладка не отяжелела.
Ничего не загружается
Браузер декодирует видео из локального object URL. Ни сервера, ни очереди, ни телеметрии о вашем материале.
Передача остальным инструментам
Отправьте кадр прямо в CropSnap, CompressSnap, удаление фона или MemeBolt — без скачивания и повторной загрузки.
Тот кадр, который вы видели, а не предыдущий
Частота кадров измеряется по самому видео, и каждый снимок ждёт, пока кадр действительно окажется на экране, — сохранится именно тот стоп-кадр, на который вы смотрели.
Декодирует браузер, который у вас уже есть
Видео проигрывается из локального object URL, а кадры рисуются на canvas, поэтому извлечение идёт со скоростью вашего собственного декодера и без очереди на кодирование. Ничего не загружается, ничего не ждёт на сервере, а чтобы избавиться от файла, достаточно закрыть вкладку.
Обложки, доказательства, референсы
Вытащить самый чистый кадр для обложки, поймать точный кадр, где вылезает баг, собрать референсы для дизайна или задокументировать, что произошло на 00:04:11, — всем нужен тот кадр, который вы видели, а не предыдущий. Частота измерена, перемотка дождана, поэтому номер кадра на экране совпадает с номером в файле, а шаг вперёд и назад каждый раз возвращает ту же картинку.
Ваше видео остаётся на устройстве. Нет загрузок, баз данных и отслеживания — файл существует только в локальной памяти и исчезает при закрытии вкладки.
Часто задаваемые вопросы
QМоё видео куда-то загружается?+
Нет. Браузер декодирует его из локального object URL, а кадры рисуются на canvas в той же вкладке. Серверной части нет, и с закрытием страницы файл исчезает.
QОткуда он знает частоту кадров?+
Он её измеряет. Видео доли секунды играет без звука, пока requestVideoFrameCallback сообщает время презентации каждого кадра; медиана интервалов и становится частотой. Там, где браузер такого колбэка не даёт, инструмент честно об этом пишет.
QПочему шаг стал медленнее, чем раньше?+
Потому что теперь каждый шаг ждёт, пока новый кадр будет представлен, и только тогда считает себя выполненным. Это ожидание и есть разница между сохранением кадра, на который вы смотрите, и предыдущего.
QМожно ли извлечь много кадров сразу?+
Да. На вкладке пакета — по одному каждые N секунд, N равномерно по диапазону или каждый кадр между двумя точками, до 500 за проход. Количество известно до старта, а «Стоп» или Escape прерывают немедленно.
QЧто на самом деле измеряет поиск сцен?+
Среднюю абсолютную разницу яркости между соседними выборками, взятыми на уменьшении шириной 64 пикселя. Всё рисуется на графике, так что видно, насколько каждая выборка далека от порога, и порог двигаете вы, а не скрытая оценка.
QВ каком качестве выгружаются кадры?+
По умолчанию в родном разрешении видео, в PNG без потерь или в JPG/WebP с регулятором качества. Можно выгрузить и в 50% или 25%, когда нужен контрольный лист, а не мастер.