ffmpeg 高档多幅图像缩放平移

ffmpeg 高档多幅图像缩放平移

我成功地使用以下代码在平移和缩放之前在一个图像上使用高档:

ffmpeg -y -t 15 -i 1.jpg -t 15 -i 2.jpg -t 15 -filter_complex "[0:v]scale=8000:-1,zoompan=z='min(zoom+0.0020,1.5)':d=417[v0]; [1:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.021,zoom-0.0020))':d=417,fade=t=in:st=0:d=5[v1];[v0][v1]concat=n=2:v=1:a=0,format=yuv420p[v]" -c:v libx264 -map "[v]" -s "800x450" -t 300 -threads 2 video.mp4

但我无法使用以下方法在多张图像上实现相同的效果:

ffmpeg -y -t 15 -i 1.jpg -t 15 -i 2.jpg -t 15 -filter_complex "[0:v]scale=8000:-1,zoompan=z='min(zoom+0.0020,1.5)':d=417[v0]; [1:v]scale=8000:-1,zoompan=z='if(lte(zoom,1.0),1.5,max(1.021,zoom-0.0020))':d=417,fade=t=in:st=0:d=5[v1];[v0][v1]concat=n=2:v=1:a=0,format=yuv420p[v]" -c:v libx264 -map "[v]" -s "800x450" -t 300 -threads 2 video.mp4

这是产生的错误:

输入链接 in1:v0 参数(尺寸 1280x720,SAR 59001:59000)与相应的输出链接 in0:v0 参数(1280x720,SAR 1:1)不匹配 [Parsed_concat_5 @ 0000022fb3004b80] 无法在 Parsed_concat_5 上配置输出板 重新初始化过滤器时出错!无法将帧注入过滤器网络:参数无效 处理流 #1:0 的解码数据时出错 转换失败!

任何帮助都将不胜感激,谢谢...

答案1

使用

ffmpeg -y -i 1.jpg -i 2.jpg -filter_complex "[0:v]scale=8000:-1,zoompan=z='min(zoom+0.0020,1.5)':d=417:s=800x450,setsar=1[v0]; [1:v]scale=8000:-1,zoompan=z='if(lte(zoom,1.0),1.5,max(1.021,zoom-0.0020))':d=417:s=800x450,setsar=1,fade=t=in:st=0:d=5[v1];[v0][v1]concat=n=2:v=1:a=0,format=yuv420p[v]" -c:v libx264 -map "[v]" -t 300 -threads 2 video.mp4

zoompan 对每幅图像单独进行操作。通过-t 15在每幅图像前添加,它将对每幅图像的 375 帧进行操作,为每个图像生成 417 帧的 zoompan!我不认为这是你想要的。

由于 concat 抱怨纵横比不匹配,因此添加了 setsar 来强制使用通用 SAR。

相关内容