如何在 FFMPEG 表达式中使用数组中的值?

如何在 FFMPEG 表达式中使用数组中的值?

我有一个包含 30 个数值列表的文本文件,我正在以 30fps 制作 1 秒的视频。

# values.txt
0 0.1 0.6 0.8 1.0 ... <= 30 values

我怎样才能在均衡器过滤器等中使用这些每帧的值?

类似于读取数组然后使用当前帧号从数组中获取一个值:

# pseudo FFMPEG code
values=$(cat values.txt)
arr=($values)
ffmpeg -i in.mp4 -filter-complex eq=brightness=${arr}[n]:eval=frame out.mp4

答案1

您可以使用表单的元素eq(N\,frame#)*value并将它们添加在一起。

对于三帧来说

eq=brightness=eq(N\,0)*0+eq(N\,1)*0.1+eq(N\,2)*0.6:eval=frame

相关内容