Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 在FFmpeg中使用minterpolate可以减少模糊帧吗_Image Processing_Ffmpeg_Mpdecimate - Fatal编程技术网

Image processing 在FFmpeg中使用minterpolate可以减少模糊帧吗

Image processing 在FFmpeg中使用minterpolate可以减少模糊帧吗,image-processing,ffmpeg,mpdecimate,Image Processing,Ffmpeg,Mpdecimate,我正在使用FFMPEG从视频中剪切png文件 根据视频元数据的不同,我在1-3之间以fps的形式对视频进行切片。 我可以看到,当视频中的对象移动快或相机不稳定时,我会得到模糊的帧。我试图研究如何解决这个问题(这些框架的质量是我的主要目标),我解决了minterpolate选项 我认为,如果我使用混合选项,这将意味着3帧比1,模糊对象的“噪音”将减少 所以我现在的命令是这样的: ./ffmpeg -i "/home/dev/ffmpeg/test/input/@3.mp4" -

我正在使用FFMPEG从视频中剪切png文件

根据视频元数据的不同,我在1-3之间以fps的形式对视频进行切片。 我可以看到,当视频中的对象移动快或相机不稳定时,我会得到模糊的帧。我试图研究如何解决这个问题(这些框架的质量是我的主要目标),我解决了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来解决我的问题有更好的方法吗?

如果使用FFMPEG中的
mci
方法,而不是
blend
方法,可以创建更好的插值结果。还有更先进的技术可用

如果我理解正确的话,在两个非模糊图像之间有一个模糊图像(我们称之为B,在中间)(我们称之为a在左边,C在右边)。现在,您希望将中间帧B替换为非模糊版本的B

minterpolate
用于ffmpeg中的插值。它有两种不同的方法。A
blend
模式,该模式淡出A,然后淡入C,为B生成新图像

混合 如果我使用
ffmpeg-I%02d.png-framerate 10-vf minterpolate=fps=20:mi_mode=blend test-%02d.png
运行它,我会得到以下图像

运动估计 您还可以使用运动估计或
mci
模式,该模式允许您执行基于运动的插值。你可以通过改变模式来调用它:<代码> FFMPEG-I %02DPNG-FRAMETATE 10 -VFMPLATATE= FPS=20:MIYMODE=MCI测试-%02D.PNG <代码>在中间生成一个圆圈。

进一步
ffmpeg mci模式使用一种算法。有一些更先进、更基础的方法可用。如果目标fps是原始fps的除数(例如,对于原始fps=30,您可以选择目标fps 1、3、5等;对于原始fps=10,您可以选择1、2、5等),则无需插值,只需使用原始视频帧。如果只选择视频中的第n个原始帧,而不进行插值,则可以使用分数fps(例如,每2秒3帧)来实现这一点。谢谢你能分享一个使用FFMPEG每2秒选择1帧的例子吗?请看这里:非常感谢!这是我在StackOverflow中得到的信息最丰富、最重要的回答:)谢谢。