带有时间码/帧号的 FFmpeg Idet?

问题描述

是否有可能让 ffmpeg 在运行 idet 过滤器时告诉您它认为哪些帧是交错/渐进的?

我的用例是,当在文件中检测到隔行帧时,我需要能够知道 ffmpeg 认为哪些帧是隔行的,以便我可以轻松地将它们拉起来并检查 ffmpeg 在其评估中是否正确。有时动画中的锯齿和细线会让它失去作用。

解决方法

idet 过滤器将每帧确定存储为元数据,可以使用元数据过滤器将其转储到文件中,例如

ffmpeg -i input -vf idet,metadata=print:file=idet.log -f null -

每个帧日志的形式,

frame:2    pts:1024    pts_time:0.0666667
lavfi.idet.repeated.current_frame=neither
lavfi.idet.repeated.neither=3.00
lavfi.idet.repeated.top=0.00
lavfi.idet.repeated.bottom=0.00
lavfi.idet.single.current_frame=progressive
lavfi.idet.single.tff=0.00
lavfi.idet.single.bff=0.00
lavfi.idet.single.progressive=2.00
lavfi.idet.single.undetermined=1.00
lavfi.idet.multiple.current_frame=progressive
lavfi.idet.multiple.tff=0.00
lavfi.idet.multiple.bff=0.00
lavfi.idet.multiple.progressive=2.00
lavfi.idet.multiple.undetermined=1.00