mo3golom / wonder-stories
Service for generating stories from source data
1.0.3
2021-08-30 15:58 UTC
Requires
- php: ^8.0
- intervention/image: ^2.6
- league/flysystem: 1.1.5
- nesbot/carbon: ^2.52
- php-ffmpeg/php-ffmpeg: ^0.18.0
- vlucas/valitron: ^1.4
Requires (Dev)
- phpunit/phpunit: ^9.5
- slevomat/coding-standard: ^7.0
- spatie/ray: ^1.28
- squizlabs/php_codesniffer: ^3.6
- vimeo/psalm: ^4.8
This package is auto-updated.
Last update: 2024-10-29 06:12:52 UTC
README
Сервис для генерации видео креативов для instagram stroies / reels или тик-ток видео.
Требования:
- php:8.0
- ffmpeg
- gd
- imagick
Установка
Вы можете установить пакет с помощью composer:
composer require mo3golom/wonder-stories
Использование
Базовое использование:
$background = (new \Mo3golom\WonderStories\DTO\Background()) ->setWidth(576) ->setHeight(1024) ->setDuration(7) ->setPath('path_to_mp4_video') ; $block = (new \Mo3golom\WonderStories\DTO\Block()) ->setType( (new \Mo3golom\WonderStories\DTO\Type()) ->setId(\Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT) ->setSettings([ 'text' => 'test', 'font_color' => '#ffffff', 'font_size' => 32, 'offset' => 16, 'background_enable' => true, 'background_color' => '#000000', ]) ) ->setDuration(5) ->setStartAt(0) ->setPosition( (new \Mo3golom\WonderStories\DTO\Position()) ->setX(100) ->setY(100) ) ; $creative = (new \Mo3golom\WonderStories\DTO\Creative()) ->setBlocks([$block]) ->setBackground($background) ; $wonderStories = \Mo3golom\WonderStories\Service\WonderStories::make(); echo $wonderStories->createFromCreative($creative);
Также при создании сервиса можно передать свою конфигурацию:
$wonderStories = \Mo3golom\WonderStories\Service\WonderStories::make([ 'filesystem' => [ 'local' => [ 'root' => './package' ], ], 'block_types' => [ \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT => [ 'id' => \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT, 'name' => 'Текст', 'processor' => \Mo3golom\WonderStories\Service\Block\TypeProcessors\Text::class, ], \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TIMER => [ 'id' => \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TIMER, 'name' => 'Таймер', 'processor' => \Mo3golom\WonderStories\Service\Block\TypeProcessors\Timer::class, ], ], ]); echo $wonderStories->createFromCreative($creative);
Типы Блоков:
Есть несколько доступных типов блоков (устанавливается в DTO Type, метод setId)
- \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT - обычный многострочный текст. Имеет следующие настройки:
[ 'text' => 'test', // отображаемый текст 'font_color' => '#ffffff', // цвет текста в HEX формате 'font_size' => 32, // размер текста 'font_path' => 'path_to_font.ttf', // путь до файла шрифта .ttf 'offset' => 16, // отступ от краев фона (будет заметно, если отрисовать фон) 'background_enable' => true, // включить отрисовку фона 'background_color' => '#000000', // цвет фона ]
- \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TIMER - таймер обратного отсчета. Стартовое число зависит от продолжительности блока (setDuration). Имеет следующие настройки:
[ 'font_color' => '#ffffff', // цвет текста в HEX формате 'font_size' => 32, // размер текста 'font_path' => 'path_to_font.ttf', // путь до файла шрифта .ttf 'offset' => 16, // отступ от краев фона (будет заметно, если отрисовать фон) 'background_enable' => true, // включить отрисовку фона 'background_color' => '#000000', // цвет фона ]
License
The MIT License (MIT). Please see License File for more information.