
字节笔记本
2026年10月7日 · 约 3 分钟读完
单词按正弦上下移动
用户把名字拼成 ffempg,问能不能做动效。先更正成 FFmpeg。第一段只列了能力:动图、转场、叠加、变速、滤镜、文字、拼接、抽帧。没有命令。用户接着要英语单词的弹跳,才有一条完整命令。
画布和那一行纵坐标
命令用 lavfi 的颜色源当输入。尺寸 1280 乘 720,每秒 30 帧,底色白。滤镜链先画文字,再格式化成 yuv420p。时长 10 秒,输出 bouncing_text.mp4。
文字是 BOUNCE,字号 72,黑色。水平位置是画面宽度减去文字宽度再除以二,所以居中。四周有黄框,框边宽 5。字体文件在命令里是占位路径,要换成机器上真实的字体文件,否则画不出字。
纵坐标是高度减 180,再加上 80 乘以正弦。正弦的参数是二倍圆周率乘时间再除以三。时间每增加三秒,相位走完一圈,单词上下走一个来回。振幅是 80 像素。中线在高度减 180 的那一行。720 的画面上,这条中线离底边 180 像素。
正弦是来回摆
正弦会到正也会到负。单词在中线上下各约 80 像素之间来回,经过最低点不会停住。这和球落地再弹起不是同一条曲线。对话把它叫做弹跳。看公式,它是匀速相位的上下摆动。要落地停一下,这条正弦不够。

十分钟不是时长。时长参数是 10,单位秒。帧率 30,大约三百帧。改词只改 text 里的引号内容。词变长,水平居中仍按文字宽度算,不用手改横坐标。
黄框跟着文字走,因为框是文字滤镜的参数,不是单独一张不动的图。框颜色和字颜色对话写死为黄和黑。底是白。对比足够,但没有另给描边。
滤镜链末尾的格式转换是为了让编码接受。对话没有再写编码器名字。输出容器是 mp4。打不开时先看字体路径和这行格式还在不在,不要先改正弦。
第一段列的八类都没有配命令。不能从那份清单推出淡入或画中画的参数。能运行、能核对的只有单词这一条。

占位字体路径不要留在命令里。换成字体后,字号 72 在 720 的高度里约占一条。振幅 80 再叠加,上下不要顶出画面太多。中线已经留了 180,上方空间是高度减去中线和振幅。数值是按这条命令算的,不是另设的边距参数。
用户要的是英语单词。示例词是 BOUNCE。换成别的单词,滤镜结构不变。中文能不能画出来,取决于你换上的字体里有没有那些字。对话没有用中文做示例。
命令是一条滤镜链。画文字和格式转换用逗号接在同一个滤镜字符串里。拆成两次运行,第二次看不到前一次的坐标。保持一条命令。
三十帧乘十秒是整段长度。正弦不关心总帧数,只关心时间变量。截短到三秒,刚好一个来回。截短不会改变振幅。



