我正在使用FFMPEG对视频中的png文件进行切片。
我切片的视频在fps之间的1-3取决于一些视频元数据。我可以看到,当视频中的对象快速移动或相机不稳定时,我会得到模糊的帧。我试图研究如何解决它(这些帧的质量是我的主要目标),我解决了minterpolate选项。
我认为,如果我使用混合选项,这将意味着3帧到1帧,模糊对象的“噪声”将会减少。
所以我现在的命令是这样的:
./ffmpeg -i "/home/dev/ffmpeg/test/input/@3.mp4" -vf minterpolate=fps=1:mi_mode=blend,mpdecimate=hi=11456:lo=6720:frac=0.5 -vsync 0 "/home/dev/ffmpeg/test/output/3/(#%04d).png"
我说的对吗?你有没有想出一种更好的方式来使用FFMPEG来解决我的问题?
发布于 2020-10-16 07:12:47
如果在ffmpeg中使用mci
方法,而不是使用blend
方法,则可以创建更好的插值结果。还有更先进的技术可用。
如果我理解正确的话,在两个非模糊的图像之间有一个模糊的图像(让我们称之为B,在中间)(让我们称它们为A在左边,C在右边)。现在,您希望将中间帧B替换为B的非模糊版本。
minterpolate
filter用于在ffmpeg中进行插值。它有两种不同的方法。blend
模式,淡出A,然后淡入C,为B生成新图像。
混合
如果我用ffmpeg -i %02d.png -framerate 10 -vf minterpolate=fps=20:mi_mode=blend test-%02d.png
运行它,我会得到下面的图像。
运动估计
您还可以使用运动估计或mci
模式,这允许您进行基于运动的插值。您可以通过更改模式来调用它:在中间生成一个圆的ffmpeg -i %02d.png -framerate 10 -vf minterpolate=fps=20:mi_mode=mci test-%02d.png
。
走得更远
ffmpeg mci模式使用classic算法。有一些更高级的基于optical flow和neural network的方法可用。这可以为更复杂的图像和更复杂的运动场提供更好的results。
https://stackoverflow.com/questions/63152626
复制相似问题