ffmpeg - 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))
解决方案
在select=not(mod(n\,500))
,
select
调用选择视频过滤器,如果表达式计算为非零,则向前发送一个帧,否则丢弃它。
mod(var,X)
返回除以的模数(除以后的余数var
)X
。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。
推荐阅读
- apache-spark - 加入RDD并获得最小值
- python - Python networkx 用松散节点连接子图
- python - Django视图多次调用函数
- c# - 如何使用参数数组做服务 WCF REST
- elasticsearch - Kafka Elasticsearch 连接器时间戳
- python-3.x - 在 docker 上设置 django
- vue.js - 避免重新渲染后滚动到顶部
- python - Celery:为什么从接受任务到开始执行任务有几秒钟的时间间隔?
- php - 如何为使用自定义函数实例化的类添加自动完成功能?
- spring - 结合OAuth2和http基本认证spring security