【问题标题】:Extract every nth frame from a MPEG4 using ImageMagick使用 ImageMagick 从 MPEG4 中提取每第 n 帧
【发布时间】:2021-12-13 08:47:31
【问题描述】:

我想尝试从超过 6 分钟的大型 MPEG4 文件 (20.1MB) 中提取第 n 帧。但是,如果我尝试这样的事情:

convert video.mp4 *.png

我的整个计算机完全崩溃了。因此,我想尝试通过仅从 MPEG4 文件中提取每第 n 帧而不是提取超过 8000 张图像来节省一些时间和计算能力。如何实现?

【问题讨论】:

标签: image-processing imagemagick


【解决方案1】:

我会使用“ffmpeg”来做到这一点。以 X 间隔提取 PNG 图像的命令可以这么简单...

ffmpeg -i input.mp4 -r 1 out%04d.png

使用选项-r 1 会将输出帧速率设置为每秒1。假设输入视频的帧速率为每秒 25 帧,则选项 -r 1 将大约每 25 帧输出一次。根据输入的帧率计算你需要的间隔。例如,要获取大约每 10 帧,请使用 -r 2.5

此示例中的输出文件名包含%04d,它创建了一个四位数字的编号序列,并用前导零填充。

【讨论】:

    【解决方案2】:

    VLC 媒体播放器可以做到这一点:

    1. 以管理员身份运行 VLC。

    2. 单击工具 - VLC 中的首选项。

    3. 在“显示设置”下,点击“全部”。

    4. 在“视频”下,选择“过滤器”,但不要展开它。勾选“场景视频过滤器”复选框。

    5. 展开“滤镜”并选择“场景滤镜”,

    6. 给出输出路径。

    7. 设置“记录比率”框,例如 10,20 等。

    8. 点击“保存”。

    9. 单击媒体 - 打开视频并找到您的视频。耐心地让整个事情发挥作用。 VLC 会自动抓帧并保存到输出路径。

    10. 禁用:单击工具 - 首选项。在“显示设置”下,单击“全部”。 在“视频”下,选择“过滤器”。取消选中“场景视频过滤器”。点击“保存”。

    【讨论】:

      猜你喜欢
      • 2014-05-07
      • 2018-10-13
      • 2020-10-03
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多