Сервис, предназначенный для выгрузки и преобразования по параметрам короткого видео из оригинала.
В зависимости от передаваемых параметров, система формирует короткое видео. После запроса на создание нового шорта, система создает новое полотно размером 1080х1920. Выбирается один из доступных форматов видео (сейчас доступно 6). Формат различается числом видео (основное и основное с видео для привлечения внимания (мойка ковров, Subway Serf, Minecraft Parkour, готовка)). Основное видео может быть обычное (горизонтально посреди полотна без обрезки, увеличенное видео и совсем увеличенное на весь размер горизонтального экрана).
Затем параметризовано проверяется накладывание субтитров (вид, форма, цвет и т.д.), эмодзи-реакций, фоновой музыки, headline. Срендеренное решение загружается на файловый сервер и возвращает клиенту ссылку на него.
Дополнительно реализован роут для формирования превью ролика (наложение название на заданный участок картинки) и получение статических файлов, доступных в системе (предусмотрено, что статические файлы могут быть как предзаписанные в системе, так и по ссылке с файлового сервера, залитые непосредственно клиентом)
Python, Flask, Moviepy, ultralytics
- Устанавливаем зависимости
pip install -r requirements.txt - Запускаем файл
app.py - Роуты апи расположены на http://localhost:5000/swagger
Настройка статичных файлов происходит static_files.py: указываем в списки этого файла и добавляем в папки static/fonts или static/music или static/fonts