如何从Bodymovin导出的After Effects JSON文件获取FFmpeg命令?
用FFmpeg处理Bodymovin导出的Lottie JSON动画
FFmpeg本身不原生支持直接解析Lottie JSON文件来渲染视频,得通过「先把Lottie JSON转成视频/序列帧,再用FFmpeg二次处理」的方式实现,下面是具体方法:
方法1:先用Lottie命令行工具生成视频,再用FFmpeg处理
首先需要安装Lottie的命令行渲染工具,比如基于Node.js的lottie-cli:
npm install -g lottie-cli
然后用它把JSON渲染成基础视频:
lottie render -i your-animation.json -o temp-animation.mp4
接下来就可以用FFmpeg对这个视频做任意处理了——比如转格式、压缩、加音频、裁剪等,举个压缩到H.264的例子:
ffmpeg -i temp-animation.mp4 -c:v libx264 -crf 23 -preset medium final-output.mp4
方法2:用管道直接将Lottie序列帧传给FFmpeg编码
如果不想生成中间视频文件,可以让Lottie工具输出PNG序列到管道,直接用FFmpeg编码:
lottie render -i your-animation.json -o - -f png | ffmpeg -f image2pipe -i - -c:v libx264 -r 30 output.mp4
注意:命令里的
-r 30要和你的Lottie动画帧率一致,帧率可以从JSON文件里的"fr"字段获取(比如JSON里写"fr": 25就改成-r 25)。
从Lottie JSON里提取关键参数
你可以直接打开JSON文件,找到这些参数来优化FFmpeg命令:
- 帧率:
"fr"字段(比如"fr": 30) - 分辨率:
"w"(宽度)和"h"(高度)字段(比如"w": 1920, "h": 1080) - 动画时长:用结束帧
"op"减去起始帧"ip",再除以帧率,比如(150 - 0)/30 = 5秒
如果你的Lottie动画依赖外部资源(比如图片、自定义字体),要确保这些文件和JSON放在同一目录,不然渲染工具会找不到素材。
内容的提问来源于stack exchange,提问作者Parth Roy
相关产品推荐
相关产品推荐

