Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
FFMPEG-如何在删除顺序重复帧的同时将帧提取为图像_Ffmpeg_Duplicate Removal_Sequential_Image Extraction - Fatal编程技术网

FFMPEG-如何在删除顺序重复帧的同时将帧提取为图像

FFMPEG-如何在删除顺序重复帧的同时将帧提取为图像,ffmpeg,duplicate-removal,sequential,image-extraction,Ffmpeg,Duplicate Removal,Sequential,Image Extraction,是否有任何方法(通过脚本或最好是调用ffmpeg中我错过的某个参数)从avi文件中提取帧并忽略顺序重复帧,从而能够仅查看增量/更改来浏览图片 我经常要记录工作中的会议,而且很多时候,当我们通过电话交谈时,我看到的客户端屏幕没有改变。会议结束后,我需要使用这些图像作为文档和规范收集的一部分 我知道我可以只输出每一帧,并通过任何给定的重复文件删除工具运行它们,但这将删除所有重复帧。因此,如果提取的帧是这样的: A、 A,A,B,B,B,B,C,C,A,A,C,C,C,B,B,B 通过一个典型的重复文

是否有任何方法(通过脚本或最好是调用ffmpeg中我错过的某个参数)从avi文件中提取帧并忽略顺序重复帧,从而能够仅查看增量/更改来浏览图片

我经常要记录工作中的会议,而且很多时候,当我们通过电话交谈时,我看到的客户端屏幕没有改变。会议结束后,我需要使用这些图像作为文档和规范收集的一部分

我知道我可以只输出每一帧,并通过任何给定的重复文件删除工具运行它们,但这将删除所有重复帧。因此,如果提取的帧是这样的:

A、 A,A,B,B,B,B,C,C,A,A,C,C,C,B,B,B

通过一个典型的重复文件删除程序运行它们,我会得到:a,B,C

我想要的是:A,B,C,A,C,B

我当前用于提取图像的命令是:

ffmpeg.exe-i file.avi-ss 0-sameq-f image2-r 1图像%5d.png

我事先得到了每一帧(从上面删除了-R1),但这产生了太多的帧,无法处理,因为这些在线会议可以持续数小时,所以现在,我从文件中每秒得到一帧

基于Windows的解决方案会更好,但是,我相信其他人会对其他平台上的解决方案感兴趣(如果有的话)


非常感谢任何方向正确的解决方案或点。

您是否尝试了
-vsync 0
选项?

运行ffmpeg后,运行重复文件查找器

Linux:
fdupes-N-d*.png
()


有关几十种类似的工具,如Windows等,请参见。

您可以通过
mpdecimate
视频过滤器(然后是
setpts
过滤器以获得正确的计时)访问它。
使用此选项:

-vf mpdecimate,setpts=N/FRAME_RATE/TB
可能它不适用于原始命令,您需要使用它首先将原始视频转换为无重复帧的视频:

ffmpeg.exe -i file.avi -vf mpdecimate,setpts=N/FRAME_RATE/TB outfile.avi
然后使用
outfile.avi
生成图像序列


(在需要的情况下,过滤器
mpdecimate
可以通过其选项
hi
lo
frac
进行调整,但默认值可以正常工作。)

很接近,但当我尝试它时,
fdupes
仍然发现更多连续相同的帧要剔除。+1在我的情况下(低帧速率)我把每一帧复制了50次。使用此选项,每1000个非重复帧中只有1个重复帧。显示的输入帧数与我的输入帧数完全相同。也许有一些全黑的过渡帧作为其他评论者的复制品出现?相同。它给了我精确的输入帧数。这对其他人有什么实际作用?