gpt4 book ai didi

image-processing - 两个图像之间的视频变形,FFMPEG/Minterpolate

转载 作者:行者123 更新时间:2023-12-04 22:54:16 24 4
gpt4 key购买 nike

我正在尝试在 Ubuntu Linux 上的 bash 脚本中使用带有 ffmpeg 的 mininterpolate 过滤器的两帧(png 图像)制作一个快速简单的变形视频。目的是稍后在不同的视频编辑器中使用变形作为相似视频之间的过渡。
它适用于 3+ 帧/图像,但 仅使用 2 帧/图像失败。
首先是有效的代码:3帧
这是使用三个 1080p png 文件:test01_01.pngtest01_02.pngtest01_03.png

input01="test01_%02d.png"

ffmpeg -y -fflags +genpts -r 30 -i $input01 -vf "setpts=100*PTS,minterpolate=fps=24:scd=none" -pix_fmt yuv420p "test01.mp4"
这需要一些处理时间,然后创建一个 414kb、大约三秒的变形 mp4 视频,从第一帧开始,变形到第二帧,然后变形到第三帧。
失败的代码:2帧
这仅使用了两个相同的 1080p png 文件: test02_01.png test02_02.png
input01="test02_%02d.png"

ffmpeg -y -fflags +genpts -r 30 -i $input01 -vf "setpts=100*PTS,minterpolate=fps=24:scd=none" -pix_fmt yuv420p "test02.mp4"
这几乎立即创建了 262 字节损坏的 mp4 文件。除了帧数之外没有任何区别。
我尝试过的事情:
我已经尝试过使用 Ubuntu 默认 repo 版本的 ffmpeg,以及静态 64 位 5.0 和 git-20220108-amd64 版本,结果都相同。
我还尝试使用 2 帧 mp4 文件作为输入,结果相同。
想法?
这是ffmpeg中的错误还是我做错了什么?
我也愿意接受任何关于使用其他 Linux 兼容软件创建这样的变形的建议。
感谢您的任何见解!

最佳答案

它没有记录,但看起来像 minterpolate过滤器至少需要 3 个输入帧。
我们可以使用 5 个输入帧创建更长的视频,并保留相关部分。
为了获得与仅使用两个输入图像应用 Minterpolate 滤波器相同的输出,我们可以使用以下解决方案:

  • 定义两个输入流:
    设置 test02_01.png作为第一个输入和test02_02.png作为第二个输入。
  • 使用 -stream_loop 至少循环每个图像两次
    (test02_01.png 重复两次,test02_02.png 重复 3 次)。
  • 将输入帧速率设置为 0.3 fps(相当于 -r 30setpts=100*PTS )。
    输入参数如下:-r 0.3 -stream_loop 1 -i test02_01.png -r 0.3 -stream_loop 2 -i test02_02.png .
  • 使用 concat 连接两个输入流筛选。
  • 申请 minterpolate过滤器到连接的输出。
    上述阶段的输出是一个开头冗余秒数很少,结尾冗余秒数很少的视频。
  • 申请 trim过滤器以保留相关部分。
    添加 setpts=PTS-STARTPTS最后(在使用修剪过滤器时推荐)。

  • 建议的命令:
    ffmpeg -y -r 0.3 -stream_loop 1 -i test02_01.png -r 0.3 -stream_loop 2 -i test02_02.png -filter_complex "[0][1]concat=n=2:v=1:a=0[v];[v]minterpolate=fps=24:scd=none,trim=3:7,setpts=PTS-STARTPTS" -pix_fmt yuv420p test02.mp4

    示例输出(作为动画 GIF):
    enter image description here
    test02_01.png :
    enter image description here test02_02.png :
    enter image description here

    关于image-processing - 两个图像之间的视频变形,FFMPEG/Minterpolate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71178068/

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