Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何使用ffmpeg在视频上叠加多个动画图像_Video_Ffmpeg_Overlay_Editing - Fatal编程技术网

Video 如何使用ffmpeg在视频上叠加多个动画图像

Video 如何使用ffmpeg在视频上叠加多个动画图像,video,ffmpeg,overlay,editing,Video,Ffmpeg,Overlay,Editing,在我使用“旋转”过滤器设置动画后,我尝试在视频上覆盖多个图像。我在旋转过滤器中使用t参数使动画有点随意,因此我必须将输入视频标记为循环(使用-loop标记)。 问题是,当我只执行一个叠加时,结果是预期的,但当命令中出现第二个叠加时,它突然结束,并生成一个空的输出视频。 下面是我正在使用的命令: ffmpeg -y -i template.mp4 -loop 1 -i Image_1.jpg -i Image_2.jpg -filter_complex " \ [1:v]scale=186:136

在我使用“旋转”过滤器设置动画后,我尝试在视频上覆盖多个图像。我在旋转过滤器中使用t参数使动画有点随意,因此我必须将输入视频标记为循环(使用-loop标记)。 问题是,当我只执行一个叠加时,结果是预期的,但当命令中出现第二个叠加时,它突然结束,并生成一个空的输出视频。 下面是我正在使用的命令:

ffmpeg -y -i template.mp4 -loop 1 -i Image_1.jpg -i Image_2.jpg -filter_complex " \
[1:v]scale=186:136[scaled1]; \
[scaled1]format=rgba,colorchannelmixer=aa=0.7[transp1]; \
[transp1]rotate=20*sin(2*PI/(t-9)):c=0xFFFFFF00:ow=250:oh=250,fade=in:st=1:d=5[ANIM_F1]; \
[2:v]scale=136:186[scaled2]; \
[scaled2]format=rgba,colorchannelmixer=aa=0.7[transp2]; \
[transp2]rotate=20*cos(2*PI/(t-9)):c=0xFFFFFF00:ow=250:oh=250,fade=in:st=1:d=5[ANIM_F2]; \
[0][ANIM_F1] overlay=x=1:y=190:shortest=1:enable='between(t,5,15)'[PHASE1]; \
[PHASE1][ANIM_F2] overlay=x=480:y=380:shortest=1:enable='between(t,10,20)'[out]" \
-map [out] output.mp4
在本节中

-i template.mp4 -loop 1 -i Image_1.jpg -i Image_2.jpg
视频没有循环,第一个图像是,第二个图像不是。因为第二个图像没有循环,所以旋转或覆盖过滤器只有一个帧可以使用。假设您的视频长度超过20秒,您只需循环第二个图像

-i template.mp4 -loop 1 -i Image_1.jpg -loop 1 -i Image_2.jpg

非常感谢你的帮助。你完全正确,循环第二张图片纠正了我的命令。这是我的错;)