如何运行 ffmpeg 截取 x 张屏幕截图?

如何运行 ffmpeg 截取 x 张屏幕截图?

我正在使用 ffmpeg 使用以下代码截取 twitch 流媒体的屏幕截图:

counter = 0

while counter <=5:
    os.system('ffmpeg -i ' + stream + f' -r 0.5 -f image2 {dir_path}/output_%09d.jpg')
    counter += 1

这是我第一次使用,ffmpeg所以我认为我所需要的只是一个带有计数器的 while 循环来控制它,但它实际上需要数千张屏幕截图。有没有办法ffmpeg在不停止整个脚本的情况下停止?

答案1

man ffmpeg

    -vframes number (output)
        Set the number of video frames to output. This is an obsolete alias
        for "-frames:v", which you should use instead.

基于您现有命令的示例:

ffmpeg -i <stream> -r 0.5 -frames:v 5 -f image2 output_%05d.jpg

-r 0.5设置速率(每秒帧数),从一开始您将每 2 秒获取 1 帧。您也可以选择-ss从不同的时间开始。

-frames:v 5截图后您将退出51如果您在循环中执行此命令(如您的示例所示),您还可以使用截屏并退出。但我认为你更愿意ffmpeg为此调用一个进程(没有循环)。

相关内容