从辅助视频流 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
另见
- FFmpeg Wiki: Map
-map
option documentation
- How can I extract a good quality JPEG image from a video file with
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
另见
- FFmpeg Wiki: Map
-map
option documentation- How can I extract a good quality JPEG image from a video file with
ffmpeg
?