One frame, any timestamp
Pulling a still from a video is a single line. The pattern: -ss to seek, -frames:v 1 to grab one frame, -update 1 on newer FFmpeg builds to silence the 'overwriting' warning.
Quality control
For PNG (lossless) the encoder ignores quality flags. For JPEG, -q:v 2 gives high quality (lower number = better, 1–31 range). Modern alternatives: WebP (-c:v libwebp -quality 90) or AVIF (-c:v libaom-av1 -still-picture 1) for smaller files at the same quality.
Many frames at once
Sample N frames every M seconds with fps=1/M: -vf fps=1/10 means one frame every 10 seconds. Output naming pattern uses printf: thumb_%04d.jpg → thumb_0001.jpg, thumb_0002.jpg, …