projektgopher/laravel-ffmpeg-tools

生成用于ffmpeg命令中的字符串,以便在具有缓动的值之间进行动画处理。

v0.8.0 2024-03-19 22:08 UTC

This package is auto-updated.

Last update: 2024-09-19 23:14:29 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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)。有关更多信息,请参阅许可文件