我想创建一个动画 .gif 文件作为视频的缩略图。我使用以下命令行从视频中抓取了 20 帧:
ffmpeg -i input.mkv -ss 00:05:14.435 -vframes 20 ./thumbs/out%02d.png
这种方法效果很好,我可以从中获取一个样本,然后制作一个 .gif。但是,在较长的视频中,显然有多个场景,我想从另一部分获取另外 20 帧,依此类推,多次获取几个场景。当然,这带来了一个问题,即如何决定从哪里抓取帧。
我搜索并找到了这个问题的答案,它的答案似乎确实接近我想要的 -使用 FFmpeg 为视频制作有意义的缩略图他们在回答中给出了如下命令:
ffmpeg -ss 3 -i input.mkv -vf "select=gt(scene\,0.4)" -frames:v 5 -vsync vfr -vf fps=fps=1/600 ./thumbs/out%02d.jpg
它在五个场景变化的开始处都获取一帧。我很兴奋,因为从每个场景中抓取 10 或 20 帧会很棒,这正是我想要的。
我不知道如何将找到场景变化的位置和从每个位置抓取多个帧这两个概念结合起来。-frames:v 和 -vframes 似乎是相同的参数,在一个命令中,它们告诉 ffmpeg 抓取 10 个连续的帧,而在另一个命令中,它们表示将从场景中断处抓取的帧限制为 5 个。
我如何创建一个命令来从每个场景片段中抓取 n 帧直到 y 个场景片段?哎呀,我无法控制抓取 n 帧的场景片段数量。