projektgopher / laravel-ffmpeg-tools
生成用于ffmpeg命令中的字符串,以便在具有缓动的值之间进行动画处理。
v0.8.0
2024-03-19 22:08 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.0|^8.0
- orchestra/testbench: ^8.11|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
FFMpeg的命令可能有些难以理解。以下是一个示例:
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))))))
这个非常奇怪的字符串将计算文本元素的x坐标。它将等待5秒钟,然后在2秒内以EaseOutElastic缓动效果从其最终位置的200px左侧开始动画元素。你将如何将这个缓动效果改为EaseOutBounce?这不可能实现。
此包允许您以流畅的方式构建这些字符串,易于维护,并且对于PHP和Laravel开发者来说感觉非常熟悉。以下示例将输出与上面相同的字符串,但想象一下改变它将变得多么容易。
$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);
API是模仿GreenSock Animation Platform (GSAP)设计的,所有缓动数学都从Easings.net迁移而来。这些数学字符串的字符串化是从此Gitlab仓库迁移而来。
安装
您可以通过composer安装此包
composer require projektgopher/laravel-ffmpeg-tools
用法
在Laravel应用外使用
目前,此包只能在Laravel应用中使用,但有计划将核心功能提取到独立的包中,该包可以在不绑定到框架的情况下使用。
测试
变更日志
有关最近更改的更多信息,请参阅RELEASES
贡献
请参阅CONTRIBUTING以获取详细信息。
安全漏洞
请参阅我们的安全策略,了解如何报告安全漏洞。
鸣谢
感谢EXACTsports支持此包的开发。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件