首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在FFmpeg中使用minterpolate来减少模糊帧好吗?

在FFmpeg中使用minterpolate来减少模糊帧好吗?
EN

Stack Overflow用户
提问于 2020-07-29 19:31:08
回答 1查看 2.7K关注 0票数 4

我正在使用FFMPEG对视频中的png文件进行切片。

我切片的视频在fps之间的1-3取决于一些视频元数据。我可以看到,当视频中的对象快速移动或相机不稳定时,我会得到模糊的帧。我试图研究如何解决它(这些帧的质量是我的主要目标),我解决了minterpolate选项。

我认为,如果我使用混合选项,这将意味着3帧到1帧,模糊对象的“噪声”将会减少。

所以我现在的命令是这样的:

代码语言:javascript
运行
复制
./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来解决我的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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 flowneural network的方法可用。这可以为更复杂的图像和更复杂的运动场提供更好的results

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63152626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档