【问题标题】:Quicky output selection of video frames using ffmpeg使用 ffmpeg 快速输出视频帧选择
【发布时间】:2016-11-30 01:50:52
【问题描述】:

我想使用 ffmpeg 从给定视频文件中提取 10 个视频帧,理想情况下均匀分布在整个视频中。我知道这可以通过几种方式完成,例如

ffmpeg -i input.mp4 -vf fps=1/10 out%03d.jpg

将每 10 秒输出一张图像。但是,这对我来说太慢了,并且与视频的长度成比例。我已经阅读了一些关于 ffmpeg 的搜索能力,例如

ffmpeg -ss 00:00:05 -i input.mp4 -frames:v 1 out001.jpg

将很快搜索到视频的第 5 秒并提取一帧。但是,我还没有找到一种方法来寻找视频中的多个位置,而无需在不同时间重复调用上述命令。

有没有更快的方法来完成这个?

【问题讨论】:

  • 你知道视频的时长吗?
  • 我可以通过 ffmpeg/ffprobe 快速获得,因此“分发”所选帧的时间不是问题。我只是想比我发布的上述方法更快。
  • 只有ss 之前的-i 会进行快速搜索。 ss 之后或使用任何过滤器(如 select)将花费更多时间,因为所有帧都被解码、评估然后保留或丢弃。
  • 我相信新版本的 ffmpeg -ss after -i 现在也一样快。无论如何,我在 -i 之前有 -ss,但我正在寻找更快的解决方案,例如多次搜索但只有一个 ffmpeg 命令。
  • ffmpeg -ss after -i 现在和 -i 一样快 - 不,不是而且不可能。

标签: ffmpeg


【解决方案1】:

使用长命令,可以做到这一点

例如

ffmpeg -ss 00:00:05 -i input.mp4
       -ss 00:01:05 -i input.mp4
       -ss 00:03:05 -i input.mp4
       -ss 00:40:05 -i input.mp4 
       -map 0:v -frames:v 1 out001.jpg
       -map 1:v -frames:v 1 out002.jpg
       -map 2:v -frames:v 1 out003.jpg
       -map 3:v -frames:v 1 out004.jpg

【讨论】:

  • 你能解释一下这是什么意思吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
  • 2013-08-19
  • 2014-06-06
  • 2019-08-25
相关资源
最近更新 更多