【问题标题】:Extract the 0th frame of every second on a live video提取实时视频每秒的第 0 帧
【发布时间】:2020-07-20 13:29:09
【问题描述】:

我有一个命令来提取每秒的第零帧。我收到了来自here 的命令。

ffmpeg -i input.ts -vf "select=between(mod(n\, 25)\, 0\, 0), setpts=N/24/TB" output-%04d.png

但是当我在实时提要上运行上述命令时,它会提取超过 100000 帧。上述命令不适用于实时录制。任何人都可以建议或帮助我提取现场录音的第一帧吗?提前致谢。

P.S:对于我的测试,我在 tcr 视频上运行上述命令。

【问题讨论】:

  • 修改这个答案:superuser.com/a/1389062
  • @Gyan 正在提取帧,但它们不同步。
  • 不清楚这是什么意思。
  • 我在 VLC 中播放视频,在第 200 秒处停止。将其与第 200 帧进行比较。播放器上的帧和第 200 帧不一样。仅供参考,我正在使用 25FPS tcr 时间码视频进行检查。我将该视频以块的形式作为实时输入。
  • @Gyan 您共享的命令是否适用于任何帧速率?

标签: ffmpeg


【解决方案1】:

使用

ffmpeg -i input.ts -vf "select='if(eq(n\,0),1,floor(t)-floor(prev_selected_t))'" -vsync 0 output-%04d.png

这将输出每秒的第一帧,如果存在的话。

【讨论】:

  • 分享ffmpeg -i input.ts -vf "select='if(eq(n\,0),1,floor(t)-floor(prev_selected_t))',showinfo" -vsync 0 output-%04d.png的完整报告
  • 对不起,我使用了一些错误的命令。它准确地提取了 3600 帧。但它会从 0 或 1 中提取帧命名吗?
  • 当我通过时间码 tcr 视频运行它时,它每 25 帧提取一帧,与输入文件 FPS 无关。我的实际输入文件帧率为 29.97。但它每 25 帧提取一帧。
  • 它将提取每秒的第一帧。不管 fps 是多少。
  • 即使在非实时文件中,它也不会提取第零帧。它每秒提取第 12 帧,无论是在现场还是非现场。
猜你喜欢
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 2013-07-19
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多