【问题标题】:Extract final frame from a video using ffmpeg使用ffmpeg从视频中提取最终帧
【发布时间】:2022-01-03 07:55:11
【问题描述】:

我知道如何使用提取第一帧

ffmpeg -ss 00:00:00 -i input.mp4 -vframes 1 -q:v 31 output.png

这里,-ss 选项需要知道提取帧的确切时间。

我想在不知道视频的确切最终时间的情况下获得任何 .mp4 的最后一帧。

有没有办法做到这一点?

【问题讨论】:

    标签: video ffmpeg


    【解决方案1】:

    使用

    ffmpeg -sseof -3 -i file -vsync 0 -q:v 31 -update true out.jpg
    

    -sseof 从末尾开始搜索 - 我使用了 3 的值来说明具有较长音频流的文件。 -update 是一个 image2 复用器选项,它告诉 ffmpeg 覆盖输出文件。所以最后一次覆盖输出的时间是处理最后一帧的时候。

    【讨论】:

    • 这行得通。虽然它可能会有点慢,因为它需要处理整个视频......
    • 不,它不会处理整个视频,只要您的输入是存储在本地磁盘上的 MP4/MKV。
    • 但我知道-update 需要传递视频的每一帧,这就是为什么你需要使用-vsync 0。对不起,如果我用错了process这个词。
    • -update 将写入它接收到的每一帧。 -sseof -3 表示它只会接收视频最后 3 秒的帧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    相关资源
    最近更新 更多