Мы разрабатываем Timeline Studio — открытый видеоредактор, который запускается в браузере и старается выполнять как можно больше операций локально, без обязательной отправки исходных материалов на сервер.
Репозиторий распространяется по лицензии MIT:
github.com/MartinDelophy/ai-video-editor
Проект предназначен прежде всего для экспериментов с браузерным монтажом, WebCodecs, WebGPU, ONNX Runtime Web и локальными моделями обработки мультимедиа. Это не попытка полностью заменить профессиональные настольные NLE, а практическая проверка того, насколько далеко сегодня можно зайти с видеомонтажом непосредственно в Chromium.
Зачем понадобился ещё один видеоредактор
У многих браузерных редакторов исходные файлы сначала загружаются на удалённый сервер. Это упрощает разработку, но создаёт несколько проблем:
- большие видео долго загружаются;
- пользователь не всегда знает, где обрабатываются его материалы;
- работа зависит от состояния внешнего сервиса;
- серверный рендеринг требует инфраструктуры и обычно плохо воспроизводится локально;
- проект после экспорта нередко превращается в непрозрачный результат, который сложно повторно редактировать.
В Timeline Studio исходным артефактом остаётся редактируемый проект .timeline. Медиафайлы можно упаковать вместе с проектом, перенести на другую машину и снова открыть в редакторе.
Что уже реализовано
В редакторе есть многодорожечная временная шкала с основной видеодорожкой, наложениями, субтитрами, голосом, музыкой и обычными аудиодорожками.
Поддерживаются:
- обрезка, разделение и перестановка клипов;
- ripple editing и монтаж основной дорожки без разрывов;
- picture-in-picture и другие визуальные наложения;
- анимации и ключевые кадры;
- маски, цветокоррекция и Color Wheels;
- изменение скорости с сохранением привязки исходного времени;
- разделение звука видео;
- автоматические субтитры;
- синтез речи и клонирование тембра с разрешённого образца;
- разделение вокала и сопровождения;
- интеллектуальное кадрирование;
- выделение человека или объекта;
- восстановление и шумоподавление видео;
- браузерная генерация музыки;
- экспорт в MP4 и WebM.
Интерфейс адаптирован для настольных и мобильных экранов и локализован на 11 языков, включая русский.
Как устроена обработка
Основной интерфейс написан на React и собирается через Vite. Для мультимедиа используются несколько браузерных путей.
WebCodecs применяется там, где браузер предоставляет необходимые кодеки и достаточно стабильное декодирование. Для совместимых операций также используются Mediabunny, libav.js и FFmpeg WASM.
Модели машинного обучения запускаются через ONNX Runtime Web. Для тяжёлых вычислений предпочтителен WebGPU, а отдельные модели используют WASM, если этот путь даёт более стабильный результат.
Большие модели загружаются по требованию и сохраняются в Cache Storage. При повторном запуске редактор старается использовать локальный кэш, поэтому повторная генерация не должна выглядеть как новая загрузка модели.
Обработка вынесена в Web Workers, чтобы декодирование, инференс и анализ видео меньше блокировали интерфейс.
Локальные и удалённые возможности
Важно не называть полностью локальным то, что в действительности требует внешнего провайдера.
Монтаж, большая часть анализа, субтитры, некоторые голосовые модели, восстановление и экспорт выполняются в браузере. После загрузки необходимых моделей многие сценарии могут работать без постоянного обращения к серверу.
При этом удалённая генерация изображений и видео оформлена как система подключаемых провайдеров. Например, Puter.js использует собственную браузерную авторизацию и инфраструктуру провайдера.
Для локальных генераторов предусмотрены отдельные коннекторы:
- ComfyUI принимает workflow в API Format, отправляет реальное задание на loopback-адрес и импортирует объявленные результаты;
- Stable Diffusion WebUI/Forge использует совместимые API
txt2imgиimg2img.
Редактор подключается к таким службам только через loopback. Мы не рекомендуем открывать незащищённые интерфейсы ComfyUI или WebUI в локальную сеть.
Созданные изображения, видео, музыка и голосовые записи сначала попадают в раздел «Мои ресурсы» и не вставляются на временную шкалу автоматически.
Голос и субтитры
Автоматическое распознавание речи выполняется локальной ONNX-моделью Whisper.
Для синтеза речи используются разные браузерные движки. Китайские голоса проекта работают через Hojo TTS Light 80M: авторегрессионная часть выполняется через WebGPU, а декодирование звука — через WASM.
OpenVoice V2 используется не как самостоятельный TTS, а как второй этап изменения тембра. Пользователь сначала должен создать локальный профиль на основе собственного или разрешённого голоса. Исходный образец и извлечённое представление хранятся в IndexedDB и могут быть удалены пользователем.
Мы считаем это принципиальным ограничением: нельзя загружать чужой голос или лицо без явного разрешения владельца.
Предпросмотр и экспорт
Одна из наиболее сложных частей браузерного видеоредактора — согласовать предпросмотр и итоговый файл.
Timeline Studio хранит монтажные параметры в явной структуре проекта и старается использовать одинаковые вычисления времени, скорости, эффектов и положения элементов при воспроизведении и экспорте.
Для видеодорожки извлекаются кадры с реальными presentation timestamps. Обычная киноплёнка остаётся достаточно разреженной для чтения, но ячейка под курсором может заменяться точным исходным PTS-кадром. Это уменьшает вероятность того, что миниатюра покажет следующий план раньше фактической точки склейки.
Экспорт выполняется в браузере. Основной путь использует WebCodecs, а совместимый путь — браузерные медиабиблиотеки и WASM. Результат зависит от доступных в конкретном браузере кодеков и возможностей оборудования.
Управление проектами через Agent Skill
В репозитории также находится Agent Skill edit-timeline-studio. Он предназначен для Codex, Claude Code, GitHub Copilot и Gemini CLI.
Skill может:
- инспектировать архив
.timeline; - строить план изменений;
- показывать semantic diff до применения;
- импортировать локальные медиа с SHA-256-метаданными;
- изменять клипы, субтитры и аудиосвязи;
- сохранять результат в новый проект;
- проверять повторное открытие изменённого архива.
Изменение проекта разделено на этапы inspect, dry-run и apply. Исходный файл не должен молча перезаписываться.
Установка Skill через skills.sh:
npx skills add MartinDelophy/ai-video-editor --skill edit-timeline-studio
>>> Timeline Studio

