我正在尝试使用批处理文件和 ffmpeg 从文件夹中的图像创建 1920x1080 幻灯片。批处理文件引用一个 txt 文件,其中包含要连接的文件列表。图像的尺寸各不相同,需要放大或缩小。使用以下方法时,所有图像都会被连接并正确调整大小:
-r .2 -f concat -safe 0 -i concat_image_list_JPG.txt -c:v libx264 -crf 22 -pix_fmt yuv420p -vf scale=1920:1080 -r 25 -f mp4 "Slideshow 1080.mkv" -y
但我想在它们之间添加淡入淡出效果。出于某种原因,使用此命令时只有前两个图像被连接起来:
-r .2 -f concat -safe 0 -i concat_image_list_JPG.txt -c:v libx264 -crf 22 -pix_fmt yuv420p -vf zoompan=d=(4+2)/2:s=1920x1080:fps=1/2,framerate=25:interp_start=0:interp_end=255:scene=100 -r 25 -f mp4 "Slideshow 1080.mkv" -y
交叉淡入淡出命令有什么问题?如何将交叉淡入淡出和调整大小合并为单个命令?
答案1
添加-reinit_filter 0
标志。
根据以下邮政:
问题是每个输入中的像素格式在中途发生变化。这会导致滤镜图重新初始化,并且缓冲的帧会被丢弃。
在混合之前,请抑制重新初始化并转换为命令像素格式。
这不一定是像素格式的改变(可能是图像大小?)
ffmpeg -reinit_filter 0 -r .2 -f concat -safe 0 -i concat_image_list_JPG.txt -c:v libx264 -crf 22 -pix_fmt yuv420p -vf zoompan=d=(4+2)/2:s=1920x1080:fps=1/2,framerate=25:interp_start=0:interp_end=255:scene=100 -r 25 "Slideshow 1080.mkv" -y