You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Blackdetect检测结果的起始帧编号?

获取Blackdetect黑帧起始时间对应帧编号的正确方法

方法一:手动计算(快速直接)

已知视频FPS为59.94,直接用黑帧起始时间乘以FPS得到帧编号,结果按需取整即可:

帧编号 = 黑帧起始时间(秒) × FPS

以你的检测结果为例:

  • 第一个黑帧:1.06773 × 59.94 ≈ 64 → 对应第64帧(若ffmpeg帧计数从0开始则为63,根据实际需求调整)
  • 第二个黑帧:1.41808 × 59.94 ≈ 84 → 对应第84帧

方法二:用ffmpeg自动关联时间戳与帧编号

通过串联blackdetect和showinfo滤镜,让ffmpeg同时输出黑帧时间戳和每帧的编号信息,命令如下(注意使用英文半角引号):

ffmpeg -i e1.mov -vf "blackdetect=d=0:pix_th=0.40,showinfo" -an -f null - 2>blackdetect_frames.log

执行后查看日志文件:

  1. 找到blackdetect输出的黑帧起始时间(如black_start:1.06773)
  2. 在showinfo的输出中,寻找pts_time与该起始时间最匹配的行,该行的n值就是对应帧编号(showinfo的n从0开始计数,需从1开始的话加1即可)

注意事项

  • 避免使用中文引号,ffmpeg仅识别英文半角引号,否则会导致滤镜解析失败。
  • 若视频存在可变帧率(VFR),手动计算可能有误差,此时优先使用方法二获取准确帧编号。

内容的提问来源于stack exchange,提问作者JustNoobish619

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:35:32