首页 > 解决方案 > select=not(mod(n\,500)) 在 ffmpeg 中做什么?

问题描述

我正在尝试使用 FFmpeg 获取图片拼贴(从各种时间范围获取图像并组合成一个图像)我从互联网上复制了这段代码

ffmpeg -ss 00:00:10 -i uploads/high.webm -frames 1 -vf "select=not(mod(n\,500)),scale=480:360,tile=10x5" out.webp

它正在工作,但我无法更具体地说明它是如何工作的,这是什么select=not(mod(n\,500))

标签: ffmpeg

解决方案


select=not(mod(n\,500)),

select调用选择视频过滤器,如果表达式计算为非零,则向前发送一个帧,否则丢弃它。

mod(var,X)返回除以的模数(除以后的余数varX。in mod(n,500),n是当前帧的索引,从零开始,所以这个表达式将计算为 0, 1, 2 ... 498, 499, 0, 1, 2, ... 498, 499, 0, 1, 2.. . 增加n.

not(expr)反转包含在括号内的表达式的值 - 如果 expr 非零,则为 0,如果 expr 计算结果为零,则为 1。


推荐阅读