从辅助视频流 FFMpeg 中提取帧

Extract frame from secondary videostream FFMpeg

我使用 FFMpeg 处理一些可以有多个视频流的 .mkv 视频。我如何从其他视频流(而不是主要视频流)中提取帧?我想使用 FFMPeg 从每个视频流中提取一帧。有什么想法吗?

示例输入文件布局:

  • 视频 #0:0
  • 视频 #0:1
  • 视频 #0:2
  • 音频#0:3
  • 音频#0:4

示例:输出视频 #0:2 的屏幕截图

从 30 秒时间戳开始 (-ss 30)。

绝对图

ffmpeg -ss 30 -i input.mkv -map 0:2 -frames:v 1 output.jpg

相对图

此特定输入的结果与上述相同。 0:v:1 被翻译为“从输入 #0 选择视频流 #1”。 请注意,ffmpeg 从 0 开始计数,因此视频流 #1 实际上是第二个视频流。

ffmpeg -ss 30 -i input.mkv -map 0:v:1 -frames:v 1 output.jpg

我更喜欢使用这种方法,因为您可以偷懒,不必知道实际的流图编号。

示例:输出每个视频流的屏幕截图

ffmpeg -ss 30 -i input.mkv -map 0:v:0 -frames:v 1 output0.jpg -map 0:v:1 -frames:v 1 output1.jpg -map 0:v:2 -frames:v 1 output2.jpg

另见