ffmpeg - 有没有办法告诉 ffmpeg mpdecimate 只评估帧的特定部分?

标签 ffmpeg

我有一个 60 FPS 的屏幕录制速度明显较慢、帧速率可变的视频。但是,它应该是恒定的帧速率。
幸运的是,帧号出现在屏幕的固定区域。在该区域内,唯一发生变化的时间是帧号发生变化。
(有时帧之间存在变化 - 在帧的其他部分 - 我希望 mpdecimate 忽略这些变化。但是,这些变化永远不会出现在帧计数区域中。)
有没有一种方法可以告诉 mpdecimate 在确定连续帧是否重复时只评估帧的那个小的“帧计数”部分?
谢谢你。

最佳答案

这里的基本方法是克隆输入流,在其中一个副本中用纯色绘制帧的不想要的部分,运行 mpdecimate 过滤器,然后将未触及的副本覆盖在去重副本的顶部。
假设底部栏是静态的,除了帧计数器并占据底部 5% 的高度。 drawbox 将在框架的顶部 95% 上绘制一个白色框。ffmpeg -i in -vf "split=2[full][masked];[masked]drawbox=w=iw:h=ih*0.95:x=0:y=0:t=fill:c=white,mpdecimate[deduped];[deduped][full]overlay=shortest=1" -vsync vfr -c:a copy out

关于ffmpeg - 有没有办法告诉 ffmpeg mpdecimate 只评估帧的特定部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64993404/

相关文章:

ffmpeg - libavfilter 缩略图似乎只处理第一组 N 帧

FFMPEG 返回负值并停止渲染

c# - 直接从内存中将 WPF BitmapSources 保存为 h264 编码的视频

video - 如何在m3u8播放列表中循环播放TS文件

video - ffmpeg中的透视过滤器 - 质量

ffmpeg 无法捕获在屏幕上运行的视频

ffmpeg - 从 IP 摄像机/rtsp 到网站的实时音频流

ffmpeg - concat视频太长ffmpeg

ffmpeg - 将图像添加到视频时的缩放问题

sockets - 使用带有网络支持的 flascc 编译 ffmpeg