![ffmpeg 高档多幅图像缩放平移](https://linux22.com/image/1557906/ffmpeg%20%E9%AB%98%E6%A1%A3%E5%A4%9A%E5%B9%85%E5%9B%BE%E5%83%8F%E7%BC%A9%E6%94%BE%E5%B9%B3%E7%A7%BB.png)
我成功地使用以下代码在平移和缩放之前在一个图像上使用高档:
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。