使用FFmpeg报告重复帧

3
我正在寻找一种方法来报告(而不仅仅是检测和删除)FFmpeg检测到的视频重复帧,类似于打印出blackdetect、cropdetect、silencedetect等内容。
例如:
ffmpeg -i input.mp4 -vf blackdetect -an -f null - 2>&1 | grep blackdetect > output.txt
输出结果如下:
[blackdetect @ 0x7f8032f03680] black_start:5.00501 black_end:7.00701 black_duration:2.002
但是据我所知,没有“dupedetect”滤镜,因此我正在寻找任何想法/解决方案来了解哪些帧被复制。

可能是ffmpeg - remove sequentially duplicate frames的重复问题。 - Gabriel Devillers
1个回答

1
尝试在命令行中使用-vp mpdecimate
ffmpeg -i input.mp4 -vf mpdecimate -loglevel debug -an -f null - 2>&1 | grep 'drop_count:\d' > output.txt

输出的示例行:

[Parsed_mpdecimate_0 @ 0x7fbbfa210380] lo:0<2653 lo:0<1326 lo:0<1326 drop pts:101101 pts_time:4.21254 drop_count:1

谢谢 - 尽管看起来减少和字段匹配的视频滤镜似乎没有打印出检测到重复项的位置,只是在输出视频中将它们删除。 - Calculon
尝试设置-loglevel debug并删除grep - wizzwizz4
非常感谢 - 我忘记了调试级别。这是它的输出: https://pastebin.com/Rr12Sn1Y在我使用的测试中,第三帧会随机重复出现,并且您可以在调试中看到滤镜丢帧的位置。我认为这个方法会有效! - Calculon
@Calculon 注意,这是模糊匹配;如果您希望进行精确匹配,需要相应地设置高低过滤选项。 - wizzwizz4
是的,即使标准版本已经对我的需求非常有效,但我可能会进行微调。我得到了一些混合文件,其中包含随机重复帧,我需要报告这些问题,而这个工具绝对能够找到它们。 - Calculon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接