我正在尝试在 Ubuntu Linux 上的 bash 脚本中使用带有 ffmpeg 的 mininterpolate 过滤器的两帧(png 图像)制作一个快速简单的变形视频。目的是稍后在不同的视频编辑器中使用变形作为相似视频之间的过渡。
它将适用于 3+ 帧/图像,但仅使用 2 帧/图像会失败。
首先是有效的代码:3帧
这是使用三个 1080p png 文件:
test01_01.png
test01_02.png
test01_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 兼容软件创建这样的变形的建议。
感谢您的任何见解!