video - 有没有办法在ffmpeg的过滤器中使用当前帧和总帧作为变量?
问题描述
我正在尝试编写一个愚蠢的命令来顺时针旋转整个视频。我唯一需要的是一个变量来告诉过滤器当前帧数和总帧数。
这是我计划的命令(cf
= 当前帧,tf
= 总帧数)
ffmpeg -i input.mp4 -vf rotate=(cf*(tf/360))/PI*180 output.mp4
有愿意帮忙的人吗?
解决方案
旋转过滤器文档说:
角度和输出大小的表达式可以包含以下常量和函数:
n
是输入帧的序号,从0开始。在第一帧被过滤之前总是NAN。t
是输入帧的时间,以秒为单位,在配置过滤器时设置为 0。在过滤第一帧之前总是 NAN。
总持续时间没有变量,但您可以使用ffprobe
. 请参阅如何以秒为单位获取视频持续时间?
在 10 秒内完成 1 次顺时针旋转的示例:
ffmpeg -i input.mp4 -vf "rotate=(2*PI*t)/10" -c copy output.mp4
推荐阅读
- google-cloud-functions - 没有 Actions API 的 Google Assistant / Dialogflow 推送通知
- vue.js - Vuex - 运行时收到错误消息,但一切都按预期工作?
- c++ - 我什么时候应该通过引用传递向量参数而不是按值传递向量参数?
- css - 创建带角度的线性渐变
- css - 侧边菜单对象上的 translate() 仍然占用空间
- c++ - 我得到“_free_dbg(块,_UNKNOWN_BLOCK);” 我正在尝试处理堆栈和队列
- php - 使用数组作为动态对象实例的查找
- python - 如何将来自api的嵌套json解压缩到pandas数据框中?
- javascript - YouTube iframe Player API:控制已经在 HTML 中的 MULTIPLE iframe 播放器
- javascript - 无法更改 div 尺寸