composer 没有动态跟踪功能,其“tracking”仅指依赖关系快照(composer.lock),而视频运动跟踪属 after effects 的像素级光流分析,二者技术原理、运行环境和用途完全无关。

Composer 没有“动态跟踪”功能,它不处理视频、不分析帧、不识别运动——这个词在 PHP 生态里根本不存在。你看到的“Composer 动态跟踪”,大概率是把 After Effects 的「运动跟踪(motion tracking)」和 Composer 的「依赖追踪(dependency tracking)」两个完全无关的概念混在一起了。
下面直接说清楚该用什么、怎么配、哪里容易错:
Composer 的 “tracking” 其实只是依赖关系快照
composer.lock 文件不是实时监控器,它是一次性生成的静态快照。每次运行 composer install 或 composer update 时,Composer 才会重新解析 composer.json 中的约束,计算出所有包的精确版本、哈希值、安装路径,并写入 composer.lock。它不会:
- 监听 vendor 目录下文件的变更
- 自动发现新引入的类或服务(除非你手动运行
composer dump-autoload) - 感知运行时加载了哪些类(那是 OPCache 或 Xdebug 的事)
实拍视频加动画?该用 After Effects,不是 Composer
你在实拍素材上贴文字、加 logo、让特效跟随飞机移动——这整套流程属于视觉后期,核心工具链是:
- 导入视频到
After Effects - 用
跟踪器面板选中飞机机翼上的高对比特征点 - 执行
位置 + 缩放 + 旋转跟踪(不是“动态跟踪”,就是标准跟踪类型) - 把跟踪数据应用到文字图层的
变换属性上 - 必要时启用
跨帧删除点剔除被遮挡帧的误跟
如果你在项目里用 Composer 管理 AE 脚本或插件(比如用 composer require adobe/ae-script-tools),那也只是装个辅助工具,和视频跟踪本身毫无关系。
为什么有人会混淆这两个“tracking”?
搜索时关键词污染严重:“composer track dependency” 和 “after effects track motion” 都带 “track”,中文都译作“跟踪”,但底层机制天差地别:
-
Composer的 tracking 是对 JSON 文件做拓扑排序 + 语义版本比对 -
After Effects的 tracking 是对像素块做光流分析 + 特征匹配 + 仿射变换拟合 - 前者跑在 CLI 里,后者吃 GPU 显存
一旦你在 AE 里导出一个含跟踪数据的 .aep,或者用 3D 摄像机跟踪器 反求出相机路径,这些数据永远无法被 composer.json 解析或加载。
phpv8 写的渲染调度器),但那个脚本本身调用的仍是 AE 的 ExtendScript API,不是 Composer 在“跟踪视频”。











