Generates strings for use in ffmpeg commands to tween between values with easings.
projektgopher/laravel-ffmpeg-tools is a Laravel package for generates strings for use in ffmpeg commands to tween between values with easings..
It currently has 55 GitHub stars and 50.262 downloads on Packagist (latest version v0.8.1).
Install it with composer require projektgopher/laravel-ffmpeg-tools.
Discover more Laravel packages by projektgopher
or browse all Laravel packages to compare alternatives.
Last updated
FFMpeg can be opaque in its commands. Take the following example:
if(lt(t\,5)\,((w*7/8)-text_w-200)\,if(gt(t\,5+2)\,((w*7/8)-text_w)\,((w*7/8)-text_w-200)+((((w*7/8)-text_w)-((w*7/8)-text_w-200))(if(eq(((t-5)/2)\,0)\,0\,if(eq(((t-5)/2)\,1)\,1\,pow(2\,-10((t-5)/2))*sin((((t-5)/2)*10-0.75)*2.0943951023932)+1))))))
This completely bonkers string will calculate just the x position of a text element. It'll wait 5 seconds, animate the element from 200px left of its final position over 2 seconds with an easing of EaseOutElastic. How would you approach changing this to an easing of EaseOutBounce? Not gonna happen.
This package allows you to build these string in a fluent way that's easily maintainable in a way that feels familiar to php and Laravel devs. The following example will output the exact same string as above, but imagine how much easier it'll be to change:
$finalXpos = '(w*7/8)-text_w';
$x = (new Tween())
->from("{$finalXpos}-200")
->to($finalXpos)
->delay(Timing::seconds(5))
->duration(Timing::seconds(2))
->ease(Ease::OutElastic);
The API is modelled after The GreenSock Animation Platform (GSAP) and all the math for the easings is ported from Easings.net. The stringification of these math strings is ported from This Gitlab repo
You can install the package via composer:
composer require projektgopher/laravel-ffmpeg-tools
For now this package can only be used within a Laravel app, but there are plans to extract the core functionality into a separate package that can be used without being bound to the framework.
Please see RELEASES for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
A big "Thank You" to EXACTsports for supporting the development of this package.
The MIT License (MIT). Please see License File for more information.