ffmpeg 基于图像大小的平移缩放

ffmpeg 基于图像大小的平移缩放

我正在尝试以编程方式从目录中随机选择“Ken Burns”图像。到目前为止,我能够在 2844x3358 大小的图像上创建所需的效果,即从上到下缓慢滚动,但我想为各种尺寸的图像创建类似的效果,包括...1200x900image.jpg、2844x3108image.jpg、2844x3218image.jpg、2844x3358image.jpg、4896x3672image.JPG 等。由于最终输出将与较旧的(格式)视频相结合,因此输出大小为 720x480movie.mp4。到目前为止,我的 ffmpeg 命令看起来像

ffmpeg -i 2844x3358.jpg \
  -filter_complex \
    "pad=w=8600:h=3600:x='(ow-iw)/2':y='(oh-ih)/2',\
    zoompan=x='(iw-0.625*ih)/2':y='(on/(25*85))*(ih-ih/zoom)'\
    :z='4':d=25*85:s=720x480" \
  -pix_fmt yuv420p -c:v libx264 720x480movie.mp4

我能够使用输入宽度/高度的百分比来复制所需的效果。

ffmpeg -i 2844x3358.jpg \
  -filter_complex \
    "pad=w=iw*3:h=ih*1.7:x='(ow-iw)/2':y='(oh-ih)/2',\
    zoompan=x='(iw-0.625*ih)/2':y='(on/(25*85))*(ih-ih/zoom)'\
    :z='4':d=25*85:s=720x480" \
  -pix_fmt yuv420p -c:v libx264 720x480movie2.mp4

但它并不适用于所有图像尺寸。我觉得这是可行的,我已经很接近了,但我严重缺乏解决这个问题所需的技能。任何帮助我了解我缺少什么以及如何前进的帮助都将不胜感激。

相关内容