问题描述
我正在尝试编写一个愚蠢的命令来顺时针旋转整个视频。我唯一需要的是一个变量来告诉过滤器当前帧数和总帧数。
这是我计划的命令(cf
= 当前帧,tf
= 总帧数)
ffmpeg -i input.mp4 -vf rotate=(cf*(tf/360))/PI*180 output.mp4
有人愿意帮忙吗?
解决方法
rotate filter documentation 说:
角度和输出尺寸的表达式可以包含 以下常量和函数:
-
n
是输入帧的序号,从0开始。在过滤第一帧之前总是NAN。 -
t
是输入帧的时间(以秒为单位),配置过滤器时设置为 0。在第一帧之前总是 NAN 过滤。
总持续时间没有变量,但您可以使用 ffprobe
获取输入文件的持续时间。见How to get video duration in seconds?
在 10 秒内顺时针旋转 1 圈的示例:
ffmpeg -i input.mp4 -vf "rotate=(2*PI*t)/10" -c copy output.mp4