【问题标题】:FFMPEG: output scene change times in framesFFMPEG:以帧为单位输出场景变化时间
【发布时间】:2019-05-28 21:34:21
【问题描述】:

我已成功使用-vf select='gte(scene,0.4)',metadata=print:file=shotcuts.txt 命令让 FFMPEG 检测场景变化并将结果输出到文件。是否可以强制 pts 字段为帧而不是默认值,这似乎因视频格式而异(例如 AVI 文件的帧,MOV/MP4 的纳秒)?

处理一个 AVI 文件,例如,以帧为单位输出时间戳:

帧 0 分 151
第 1 帧 206 分

而 MP4 文件输出为媒体时间:

帧 0 分 540000
帧 1 分 738000

【问题讨论】:

  • 不知道为什么有人把它标记下来。他们愿意解释吗?
  • 可能是因为 SO 应该只用于编程问题。

标签: ffmpeg detect frames scene


【解决方案1】:

PTS 代表演示时间标记,因此不能以帧为单位。但是,PTS 以timebase 命名,因此如果时基设置为 1/fps,则 PTS 和帧索引将重合。这仅适用于恒定帧速率和整数帧速率的流。

在选择之前使用 settb 过滤器设置时基。对于 30 fps CFR 流,

-vf settb=1/30,select='gte(scene,0.4)',metadata=print:file=shotcuts.txt

【讨论】:

  • 谢谢,吉安。这正是我需要知道的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
  • 2021-09-01
  • 2016-04-11
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
相关资源
最近更新 更多