Только для специалистов с практическим опытом и образцами работ в рендеринге Lottie-json анимации! Энтузиастов с "походу разберемся" не рассматриваю.
Бюджет обсуждаемый, срок: до 7 дней.
Что нужно сделать:
Реализовать функцию/скрипт, который принимает анимированные Lottie JSON и текстовые слои в веб приложении (сайт) и генерирует итоговый видео-слой в формате .webm (VP9 + alpha) с полной идентичностью анимации и тайминга с предпросмотром.
Контекст проекта:
Фронтенд: React (Vite), Бэкенд: FastAPI, Хранилище: MinIO (S3-совместимое), БД: PostgreSQL,
Контейнеризация: Docker, docker-compose, Для локальной разработки используется docker-compose.yml (прилагается карта проекта)
Описание проблемы:
Текущий разработчик пытался реализовать данную задачу:
• через ffmpeg (не удаётся отобразить корректные шрифты и цвета, параметры текста из админки не применяются, Lottie JSON не выводится, не удается повторить ту же анимацию, что на клиенте);
• через Remotion / Puppeteer (использовали remotion, puppeteer с записью через браузер, через ffmpeg, писали отдельное api на nodejs. Результат либо нулевой, либо видим только фрагменты текста с артефактами - частично правильный шрифт и цвет, но без таймингов, без анимаций и сам Lottie JSON не подхватывается).
Итог: результат либо пустой, либо с артефактами, анимация отличается от предпросмотра, json-слои не запекаются.
Требования к реализации:
Вывод: итоговый файл формата webm (VP9 с альфа-каналом), частота - строго 30 FPS, разрешение 1080х1920 px. Полная идентичность предпросмотру (шрифты, цвета, тайминги) без потери качества и эффектов анимации).
Процесс: конвертация текстовых и json-слоев должна производиться только после получения веб-хука об оплате в онлайн-режиме без последующего сохранения на диске промежуточных файлов (png-сиквенций и пр. сопутствующих материалов). Время конвертации должно занимать не более 20 секунд, ожидаемый вес файла не более 40 mb.
Место сохранения файла: должно задаваться параметром или переменной окружения, чтобы его можно было перенастроить без изменения кода.
Гибкость: Код должен быть написан универсально: новые кастомные шрифты с поддержкой казахской кириллицы должны подключаться автоматически без необходимости править логику рендера. Cистема должна брать JSON-анимации и текстовые параметры динамически, а не «зашивать» конкретный файл в код.
Проверка результата: скрипт после подключения к боевому сайту будет тестироваться путем использования 5 разных шаблонов открыток, 5 действующих и 3 новых шрифтов, 5 вариантов длинного и короткого текста с казахской кириллицей. Работа будет считаться выполненной только после полного соответствия результата с вышуказанными требованиями к реализации.