Об этом проекте

FreeCut — это видеоредактор с многодорожечным таймлайном, работающий в браузере и распространяемый под лицензией MIT. Он не требует установки и не загружает медиафайлы: проекты и медиа остаются локальными, а редактирование, предпросмотр, анализ, транскрибация, ИИ-генерация и экспорт выполняются в браузере через WebGPU, WebCodecs, Web Workers, OPFS и File System Access API. Проекты, метаданные связанных медиа, миниатюры, формы волн, сгенерированные ИИ-активы, транскрипты, сцены и кэши сохраняются как обычные файлы в выбранной рабочей папке на диске. Редактирование и таймлайн - Многодорожечный таймлайн с поддержкой видео, аудио, текста, изображений, фигур, масок, Lottie-анимаций и составных клипов. - Несколько таймлайнов в проекте как последовательности (Sequences) с вкладками, объединённые составными клипами. - Редактирование связанных аудио/видео с инструментами split, join, ripple, rolling, slip, slide и rate-stretch. - Переходы с центрированием на разрезе, изменением размера в реальном времени, выравниванием, привязкой к исходному времени и оверлеями предпросмотра. - Управление дорожками: mute, visibility, lock, значки синхронизации, push/pull дорожек и рабочие процессы закрытия промежутков. - Миниатюры киноплёнки, стерео-формы волн, направляющие привязки, маркеры, таймкод и undo/redo. - Монитор источника с отметками in/out, выбором дорожек для вставки, вставкой и перезаписью. - Шаблоны проектов, автоматическое соответствие холста/FPS первому медиа, настраиваемые горячие клавиши. Предпросмотр и воспроизведение - Предпросмотр в реальном времени с инструментами трансформации, кадрирования, corner-pin, масок и групповых манипуляторов. - Покадровое воспроизведение через собственный Clock и композиционный рантайм. - Быстрые оверлеи при перемотке, прогрев декодера, адаптивное качество предпросмотра и прогрев источников. - Панели редактирования с двумя и четырьмя видами для операций ripple, rolling, slip и slide. - GPU-осциллографы: waveform, vectorscope и histogram. - Отдельные мастер-шина проекта и громкость монитора/устройства. Аудио - Громкость клипа, аудиофейды, фейдеры дорожек, мастер-фейдер и стерео-LED-индикаторы. - Изменение высоты тона на клип в полутонах/центах с предпросмотром через SoundTouch. - Эквалайзер клипа и дорожки, включая компактную шестиполосную плавающую панель EQ. - Высота тона, EQ, фейды, громкость и аудиопереходы сохраняются в предпросмотре и экспорте. Эффекты, маски и композитинг - Эффекты и композитинг на основе WebGPU, с запасными вариантами где возможно. - Размытие: гауссово, box, motion, radial, zoom. - Цвет: яркость, контраст, экспозиция, сдвиг оттенка, насыщенность, вибрация, температура/оттенок, уровни, кривые, цветовые колёса, градиентная карта, LUT (.cube), градации серого, сепия, инверсия. - Искажения: пикселизация, RGB-сплит, твист, волна, выпуклость/вогнутость, калейдоскоп, зеркало, рифлёное стекло, стекло с рябью, стеклянная мозаика, droste. - Стилизация: виньетка, зерно плёнки, резкость, постеризация, свечение, обнаружение краёв, сканлайны, полутон, ASCII-арт, цветовой глитч, блочный глитч, VHS, CRT, чернила, pixel sort. - Ключинг: хромакей с допуском, мягкостью и подавлением ореола. - 25 режимов наложения, включая multiply, screen, overlay, soft light, difference, hue, saturation, color и luminosity. - Маски клипов и контуры пером с анимируемыми геометрическими трансформациями. - Палитра цветов с вводом hex и alpha, а также встроенная пипетка с лупой. Переходы - Fade, wipe, slide, 3D flip, clock wipe и iris с вариантами направлений. - Dissolve, sparkles, glitch, light leak, pixelate, chromatic aberration и radial blur. - Настраиваемые длительность, выравнивание, привязка к источнику и запасной вариант Canvas 2D для путей без WebGPU. Анимация ключевых кадров - Редактор кривых Безье, душшит, разделённый вид и оверлеи нескольких кривых. - Пресеты easing (linear, ease-in/out, cubic-bezier, spring) с редактором предпросмотра в реальном времени и сохранёнными пользовательскими пресетами. - Процедурные модификаторы движения (drift, sway, breath, spin, shake), вычисляемые во время рендера, с однокликовым запеканием в ключевые кадры. - Анимация текста: по символам, по словам и по строкам. - Режим автоключевых кадров, зеркалирование касательных, аккордеоны свойств и выделение рамкой. - Анимируемые свойства трансформации, кадрирования, масок, текста, эффектов и цвета. Медиа и импорт - Импорт видео, аудио, изображений, GIF, SVG, Lottie-анимаций и сгенерированных активов без копирования оригиналов. - Редактирование импортированных Lottie-анимаций (.json и .lottie): перекраска цветов и тем, редактирование текста, настройка слотов значений с предпросмотром в реальном времени. - Декодирование Apple ProRes для импорта, предпросмотра и миниатюр, включая варианты, которые браузер не может декодировать нативно. - Генерация прокси, извлечение миниатюр, кэширование форм волн и перелинковка медиа. Локальный ИИ и анализ - Работает на устройстве в браузере; ничего не загружается. - Транскрибация на устройстве с движком Parakeet (запасной вариант Whisper) и создание текстовых элементов субтитров. - ИИ-субтитры с локальными провайдерами vision-language и настраиваемой частотой выборки. - Обнаружение сцен с быстрым гистограммным или покадровым адаптивным анализом содержимого и опциональной проверкой моделью. - Браузер сцен для поиска по субтитрированным медиа и повторного использования обнаруженных моментов. - Локальный синтез речи Kokoro для озвучки. - Локальная генерация музыки MusicGen с пресетами, прогрессом и отменой. - Локальный кэш моделей и управление выгрузкой в настройках. Проекты и хранилище - Постоянство рабочей папки через File System Access API. - Переключатель нескольких рабочих папок с управлением известными папками. - Проекты хранятся как обычные файлы на диске, с миграцией из устаревшего браузерного хранилища. - Мягкое удаление проектов, восстановление, очистка корзины и полное удаление. - Экспорт/импорт проектов в ZIP-архиве с проверкой схем через Zod. - Автосохранение, миниатюры проектов, зеркалирование кэша рабочей папки и очистка осиротевших файлов. Экспорт - Рендеринг в браузере через WebCodecs и рабочие процессы на воркерах. - Экспорт любой последовательности, не только основного таймлайна. - Видеоконтейнеры: MP4, WebM, MOV, MKV. - Видеокодеки: H.264, H.265, VP8, VP9, AV1 (где браузер предоставляет энкодер). - Аудиоформаты экспорта: MP3, AAC, WAV/PCM. - Субтитры: выкл., встроенные, отдельный файл или встроенный мягкий трек (зависит от контейнера). - Пресеты качества от низкого до ультра, с проверкой возможностей в рантайме и запасными вариантами. Начало работы Требования: Node.js 22+ (рекомендуется), npm 11+ и современный браузер Chromium. Клонируйте репозиторий, выполните npm install и npm run dev, затем откройте http://localhost:5173 в Chrome, Edge, Brave или Arc. Рабочий процесс: выберите рабочую папку, создайте проект, импортируйте медиа перетаскиванием файлов в медиатеку, перетащите клипы на таймлайн и редактируйте, затем экспортируйте прямо из браузера. Поддержка браузеров Рекомендуется Chrome или Edge 113+. FreeCut зависит от WebGPU, WebCodecs, OPFS и File System Access API, поэтому для полного рабочего процесса требуется современный браузер Chromium. Brave может отключать File System Access API; его можно включить через brave://flags/#file-system-access-api. Технологический стек React 19 и TypeScript, Vite+ для разработки/сборки/линта/форматирования/проверок/тестов, Vite с @vitejs/plugin-react, WebGPU для эффектов, композитинга, переходов, масок, осциллографов и ускорения ИИ, WebCodecs для конвейеров предпросмотра и экспорта, File System Access API и OPFS для постоянства и кэшей, Zustand с Zundo для состояния и undo/redo, TanStack Router для типизированной маршрутизации на основе файлов, Tailwind CSS 4 с Radix UI и компонентами в стиле shadcn, Mediabunny для декодирования медиа, метаданных и аудиокодирования, Transformers.js для локальных ИИ-моделей в браузере, Kokoro.js для WebGPU-синтеза речи, а также Web Workers и AudioWorklets для обработки медиа вне основного потока. Разработка Большинство команд — это npm-скрипты на основе vite-plus (vp): npm run dev (порт 5173), build, preview, perf, lint (Oxlint), format (Oxfmt), test:run, verify (полный контроль, включая проверки архитектуры и мёртвого кода, контракты Node headless, регрессионные тесты Chrome на собранном харнессе, публичные операции редактирования и рендеринг сгенерированных медиа/аудио), headless:test и routes. Эффекты с реальным GPU остаются явным операторским/релизным шлюзом, так как CI для PR не предоставляет переносимый адаптер WebGPU. Дерево src/ организовано в features/ (пользовательские UI-модули), runtime/ (движки воспроизведения и рендеринга), infrastructure/ (платформенные адаптеры для GPU, анализа, аудио, браузера, хранилища, миниатюр), shared/ (независимые от фреймворка примитивы и межфункциональное состояние), а также app/, components/, config/, routes/ и types/. Вклад и лицензия Текущие приоритеты: исправление ошибок, затем улучшение производительности живого редактора, воспроизведения и экспорта, затем новые функции, которые предварительно обсуждались. Ошибки можно сообщать через GitHub Issues с воспроизводимыми шагами, версией браузера и скриншотами или записями; отчёты о производительности должны включать рабочий процесс, детали исходных медиа, размер проекта и момент начала замедлений. Идеи функций обсуждаются на Discord или GitHub Discussions перед реализацией. Лицензия MIT.