我正在使用ffmpeg的minterpolate滤镜,在Ubuntu Linux上的bash脚本中,使用两个帧(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"
这需要一些处理时间,然后创建一个约为3秒的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默认仓库版本的ffmpeg,以及静态64位的5.0和git-20220108-amd64版本,结果都一样。
我还尝试使用两帧mp4文件作为输入,结果也是一样。
想法?
这是ffmpeg的一个bug吗,还是我做错了什么?
我也愿意听取有关在Linux上使用其他兼容软件创建此类转换的建议。
谢谢您的任何见解!