从辅助视频流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

另请参见