如何将参数传递给混合过滤器 FFMPEG

如何将参数传递给混合过滤器 FFMPEG

我正在尝试合并 5 张图像,并在合并后创建一个闪烁的视频。我已成功为它们应用了淡入淡出效果。FFMPEG 对我来说仍然很新。

这是我执行的命令:

"-loop 1 -i "+path+"images_001.jpg " +
"-loop 1 -i "+path+"images_002.jpg " +
"-loop 1 -i "+path+"images_003.jpg " +
"-loop 1 -i "+path+"images_004.jpg " +
"-loop 1 -i "+path+"images_005.jpg " +
"-filter_complex " +
"[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];" +
"[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];" +
"[3:v][2:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b3v];" +
"[4:v][3:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b4v];" +
"[0:v][b1v][1:v][b2v][2:v][b3v][3:v][b4v][4:v]concat=n=9:v=1:a=0,format=yuv420p[v] -map [v] "+path+"out.mp4"

执行此命令后,进程将永远运行。这是我的屏幕截图:

我知道我错过了一些愚蠢的事情;因为我是新手,ffmpeg如果我能知道我错在哪里就太好了。我错过了什么?

答案1

在每个之后-loop 1插入,-t x其中 x 是以秒为单位的持续时间。

答案2

您对混合的表达式对我来说毫无意义。您想做什么?混合对每个像素执行类似这样的操作:像素分量 = 函数(A 输入的像素分量,B 输入的像素分量)。那么您的函数应该做什么?它可以执行 (A + B) / 2,这是一个非常简单的情况……

相关内容