gpt4 book ai didi

animation - 如何在 ffmpeg 中使用带有单个图像输入的时间线编辑?

转载 作者:行者123 更新时间:2023-12-04 22:48:21 27 4
gpt4 key购买 nike

小图像应该以简单的方式在背景视频上进行动画处理:

  • 改变位置 - 沿着直线移动,没有缓动。从 A 帧开始,直到 B 帧(即第 11 到 31 帧);
  • 放大 - 在帧 C 和 D(即 45 和 55)之间。

  • 我打算使用的过滤器:
  • overlay过滤器具有图像位置的 x 和 y 参数;
  • zoompan过滤器允许缩放(之前有一个静态缩放以避免抖动)。

  • 我的过滤图:
    video.avi >----------------------------------->|-------|
    |overlay|-> out.mp4
    image.png >-> scale >-> zoompan >-> zoompan >->|-------|

    问题timeline editing .两个过滤器都支持 enable选项。我想我可以添加像 enable='between(n, 11, 31)' 这样的指令在正确的时间“放置”动画。

    看来图像输入只有两个值 n : 零和 1。通过包装 n 进行检查与 print(n)zoompan在渲染期间过滤到输出。

    内部 overlay过滤器,相反, n按预期输出数字序列。

    问题:如何使单个图像输入“看起来”像 ffmpeg 过滤器的普通视频流 - 以便每个生成的帧都有其唯一编号?

    最新的测试之一。视频为hd720,图片为1000x200透明png,logo在中心占据约150x50的区域,放大时不会被裁剪掉。
    ffmpeg -i $FOOTAGE -loop 1 -i $IMAGE -filter_complex \
    "
    [1:v]
    scale=10*iw:-2
    ,zoompan=
    z='1'
    :x='iw/2-(iw/zoom/2)+80'
    :y='ih/2-(ih/zoom/2)'
    :d=26
    :s=500x100
    :enable='lt(print(n),24)'
    ,zoompan=
    z='min(zoom+1.3/18,2.3)'
    :x='iw/2-(iw/zoom/2)'
    :y='ih/2-(ih/zoom/2)'
    :d=20
    :s=500x100
    :enable='between(n,24,42)'
    [name];
    [0:v][name]
    overlay=
    x=1005-250
    :y=406-50
    :enable='lte(n,173)'
    " -t 7 -y -hide_banner out.mp4

    最佳答案

    Appears , zoompan过滤器 不是 支持时间线编辑。在提交 aa26258f日期为 2017 年 8 月 27 日,已在 ffmpeg 中更新,不再将 zoompan 列为启用时间线的过滤器。

    解决方法是编写依赖于 in 的表达式。 “输入帧数”变量并输出所需的缩放因子。

    关于animation - 如何在 ffmpeg 中使用带有单个图像输入的时间线编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46483731/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com