返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

ffmpeg-keyframe-extraction

使用FFmpeg命令行工具从视频文件中提取关键帧(I帧)。当用户需要从MP4、MKV、AVI或其他视频格式中拉取关键帧、缩略图或重要帧用于分析、预览或处理时,使用此技能。

person作者: jakexiaohubgithub

FFmpeg Keyframe Extraction

Extract key frames (I-frames) from video files using FFmpeg CLI.

Prerequisites

  • FFmpeg installed and available in PATH
  • Input video file (MP4, MKV, AVI, MOV, etc.)

Methods

Method 1: Select Filter (More Control)

ffmpeg -i <input_video> -vf "select='eq(pict_type,I)'" -vsync vfr <output_pattern>
Method 2: Skip Frame (Faster)

ffmpeg -skip_frame nokey -i <input_video> -vsync vfr <output_pattern>
Key Options
Option	Description
-i <file>	Input video file
-vf "select='eq(pict_type,I)'"	Filter selecting only I-frames
-skip_frame nokey	Skip decoding non-keyframes (performance)
-vsync vfr	Variable frame rate, prevents duplicates
-q:v <n>	Quality (1-31, lower = better, for JPEG)
-frame_pts 1	Use presentation timestamp in filename
Output Patterns
frame_%03d.png - PNG sequence (frame_001.png, frame_002.png...)
frame_%03d.jpg - JPEG sequence
frame_%d.bmp - BMP sequence
Examples
Basic PNG extraction:

ffmpeg -i video.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr keyframe_%03d.png High-quality JPEG:

ffmpeg -i video.mp4 -skip_frame nokey -vsync vfr -q:v 2 keyframe_%03d.jpg With timestamps:

ffmpeg -i video.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr -frame_pts 1 keyframe_%d.png


To specific directory:

ffmpeg -i video.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr ./output/keyframe_%03d.png


## Notes
Method 2 (-skip_frame nokey) is faster as it skips decoding non-keyframes
Method 1 offers more filtering flexibility (can combine with other filters)
Keyframe frequency depends on video encoding settings
Use -vsync vfr to avoid duplicate frames in output