如何使用具有特定寻道时间的ffmpeg从在线视频流中捕获多个屏幕截图



我正在使用ffmpeg从在线视频流中截取屏幕截图。我想寻求多个时间线。我使用以下命令通过查找命令捕获 1 张屏幕截图:ffmpeg -ss 00:02:10 -i "stream-url" -frames:v 1 out1.jpg

我如何通过多个寻道时间拍摄多个屏幕截图。我已经寻找解决方案但没有成功。

我使用以下命令截取多个屏幕截图,如下所示: ffmpeg -noaccurate_seek -ss 00:01:10 -i "stream-url" -map 0:v:0 -vframe 1 -f mpeg "thumb/output_01.jpg" -ss 00:02:10 -i "stream-url" -map 1:v:0 -vframe 1 -f mpeg "thumb/output_02.jpg">

有没有办法通过 seek 命令从相同的输入生成屏幕截图?如何让它更快?如何跳过多个输入(-i 参数(?我也尝试过其他命令,但这些命令更慢。谁能帮我?

我知道没有简单的方法来指定一些从中提取帧的任意查找点(这里有类似的问题(。

但是,使用您指定的方式进行搜索非常快。与其构造复杂的命令,不如使用youtube-dl下载 YouTube 视频(如果您还没有这样做(并生成如下命令:

ffmpeg -ss 00:01:10 -i input -frames:v 1 out1.jpg
ffmpeg -ss 00:02:05 -i input -frames:v 1 out2.jpg
ffmpeg -ss 00:03:20 -i input -frames:v 1 out3.jpg

请注意,导出 JPG 可能会导致质量低下。最好使用 PNG;您将获得无损帧,稍后可以使用其他程序处理(例如调整大小或压缩(。

如果要从固定间隔获取帧,请使用fps过滤器降低帧速率:

ffmpeg -i input -filter:v fps=1/60 out%02d.jpg

这将每分钟输出一帧(每秒 1/60 帧 = 每分钟 1 帧(,其中两个零填充数字作为输出数字。您还可以通过在输入文件之前提供-ss选项来偏移开始。

最新更新