【发布时间】:2022-01-03 07:55:11
【问题描述】:
我知道如何使用提取第一帧
ffmpeg -ss 00:00:00 -i input.mp4 -vframes 1 -q:v 31 output.png
这里,-ss 选项需要知道提取帧的确切时间。
我想在不知道视频的确切最终时间的情况下获得任何 .mp4 的最后一帧。
有没有办法做到这一点?
【问题讨论】:
我知道如何使用提取第一帧
ffmpeg -ss 00:00:00 -i input.mp4 -vframes 1 -q:v 31 output.png
这里,-ss 选项需要知道提取帧的确切时间。
我想在不知道视频的确切最终时间的情况下获得任何 .mp4 的最后一帧。
有没有办法做到这一点?
【问题讨论】:
使用
ffmpeg -sseof -3 -i file -vsync 0 -q:v 31 -update true out.jpg
-sseof 从末尾开始搜索 - 我使用了 3 的值来说明具有较长音频流的文件。 -update 是一个 image2 复用器选项,它告诉 ffmpeg 覆盖输出文件。所以最后一次覆盖输出的时间是处理最后一帧的时候。
【讨论】:
-update 需要传递视频的每一帧,这就是为什么你需要使用-vsync 0。对不起,如果我用错了process这个词。
-sseof -3 表示它只会接收视频最后 3 秒的帧。