LINUX.ORG.RU

Timeline Studio: открытый видеоредактор с WebGPU и локальными ИИ-моделями в браузере

 , ,


0

1

Мы разрабатываем 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



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от dataman

Разве это важно? Куда важнее, чтобы сам редактор из-под линукса работал. Ну и исходники открытые.

hobbit ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.