【问题标题】:how to extract multi frames from video with ffmpeg exact and fast如何使用ffmpeg准确快速地从视频中提取多帧
【发布时间】:2018-02-24 11:39:04
【问题描述】:

我想用 ffmpeg 从视频中提取帧

例如

ffmpeg.exe -an -r 21 -ss 00:17:50 -i "K:\test.mkv" -t 00:00:30 -s 560x314 -q:v 1 "T:\GIF\test_ %05d.png"

我想要的命令是

从 K:\test.mkv(O) 中提取帧

00:00:30 (O) 开始

提取的图像尺寸为 560x314 (o)

输出路径和文件名格式T:\GIF\test_%05d.png (O)

从起点提取 30 秒 -t 00:00:30 (X)

帧速率为 21(所以如果视频的原始 fps 是 24fps,那么它会降低到 fps22)(也许?X)

反正这不是收藏

我有 660 张图片,图片数量是收集的,但这不是 30 秒的视频数据 只有 15 秒的数据。这是太大的错误,所以我不能忽略它

我想我可以通过 -ss move to after -i 来修复它,但这确实需要很多时间..

我该如何解决这个问题 小错误还可以,但是错误太大了

我只想要时间 x 到时间 y,每 1000/22 秒捕获一次图片

【问题讨论】:

  • 您的视频帧率是否恒定?
  • 不;但我用java自动(带GUI)制作了这段代码,所以我想我可以读取视频的帧率并集体计算,也许......
  • 然后当我关闭 -r 选项收集提取时检查,但使用原始帧率@Mulvya

标签: video ffmpeg frame video-capture


【解决方案1】:

使用

ffmpeg -ss 00:17:50 -i "K:\test.mkv"
       -vf trim=duration=30,scale=560:314,setsar=1,setpts=N/22/TB
       -r 22 -q:v 1 "T:\GIF\test_%05d.png"

如果您的视频在提取部分中的帧速率不是恒定的,则总计没有。输出帧数不会是 660。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 2015-11-06
    相关资源
    最近更新 更多