video - 从辅助视频流 FFMpeg 中提取帧

标签 video ffmpeg video-capture mkv

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

最佳答案

输入文件布局示例:

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

  • 示例:从视频 #0:2 输出屏幕截图
    从 30 秒时间戳 (-ss 30)。
    绝对 map
    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 ?
  • 关于video - 从辅助视频流 FFMpeg 中提取帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63923301/

    相关文章:

    c++ - 传输流 - 提取信息

    javascript - 如何使用javascript通过输入字段输入URL来播放视频

    python - 如何用pygame播放视频?

    ios - 如何在 iOS(自定义)中捕获视频?

    c# - FileSystemWatcher 不会为在 ffmpeg 中打开的文件触发事件

    c - 为什么找不到实际存在的头文件?

    ffmpeg - 多媒体框架的差异

    image - OpenCV:从文件夹中读取图像系列

    android - 视频+录音机安卓

    c++ - 在实时视频上检测 SURF 点