使用 ffmpeg 从视频中提取最终帧

Saa*_*tro 0 video ffmpeg

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

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

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

我希望获得任何 .mp4 的最终帧,而不知道视频的确切最终时间。

有办法实现这一点吗?

Gya*_*yan 5

使用

ffmpeg -sseof -3 -i file -vsync 0 -q:v 31 -update true out.jpg
Run Code Online (Sandbox Code Playgroud)

-sseof从末尾开始查找 - 我使用了值 3,以考虑具有较长音频流的文件。-update是一个 image2 复用器选项,它告诉 ffmpeg 覆盖输出文件。因此,最后一次覆盖输出是在处理最后一帧时。