2017-11-11 140 views
0

我有ffmpeg命令,可以使图像覆盖其他和缩放,但缩放效果不能正常工作,它只能在覆盖图像帧内工作。Ffmpeg创建视频幻灯片与图像覆盖其他和放大

ffmpeg -loop 1 -i pic001.jpg -i pic002.jpg -filter_complex "[0:v]scale=-1:720,zoompan=z='min(zoom+0.0015,1.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=125,trim=duration=5[scaled_video];[1:v]scale=1920:1080,boxblur=15[blur_image];[blur_image][scaled_video]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[outv]" -c:v libx264 -aspect 1280/720 -map [outv] -t 10 -y fixed.mp4 

任何人都可以帮助我吗?

回答

0

覆盖过滤器不支持动态调整大小,所以你需要一个黑客做到这一点:

ffmpeg -i pic001.jpg -i pic002.jpg -filter_complex 
"[0:v]scale=-1:720,format=yuva422p,pad=1.5*iw:1.5*ih:(ow-iw)/2:(oh-ih)/2:[email protected], 
    zoompan=z='min(zoom+0.0015,1.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=125:s=WxH, 
    trim=duration=5[scaled_video]; 
    [1:v]scale=1920:1080,boxblur=15[blur_image]; 
    [blur_image][scaled_video]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[outv]" 
-c:v libx264 -aspect 1280/720 -map [outv] -t 10 -y fixed.mp4 

诀窍是添加一个alpha通道,然后垫透明的黑色图像。叠加时,由于alpha,黑色填充消失。

在缩放比例中,您必须手动将宽度为&的W和H替换为填充图像的高度。在这种情况下,它是初始缩放后的图像的1.5倍宽度和1.5倍高度。我选择1.5作为倍率,因为这是zoompan中的最大缩放级别。

+0

它的工作。非常感谢你。我可以如何使垫更小。我希望图像放大,直到达到背景的顶部。 –

+0

增加最大变焦倍数以及垫子倍增器。 – Mulvya