Take Screenshots from a Video with mpv

Capture the exact frame you're watching as a PNG or JPEG while playing any video — press s during playback or set the options up front.

LinuxvideompvScreenshotcliLow risk
Run mpv --screenshot-format=png --screenshot-directory=~/Pictures video.mp4 and press s during playback to save the current frame.

01Command

Command
$ mpv --screenshot-format=png --screenshot-directory=~/Pictures video.mp4

02What it does

mpv ships with frame-accurate screenshots built in: pressing s saves the current frame without subtitles or OSD, while S includes them, and both files land in --screenshot-directory with names built from --screenshot-template (timestamp by default, so no overwrites). Because it grabs the decoded frame directly, the picture is exactly what you see — sharper and more accurate than screenshotting your desktop. Switch to --screenshot-format=jpeg for smaller files when quality doesn't need to be lossless.

03Risk

RiskLow risk
Requirementsmpv (sudo apt install mpv / sudo dnf install mpv)
!Warning: Some hardware-accelerated outputs (vaapi/nvdec) can save black frames; if screenshots come out dark, add --vo=gpu --hwdec=no or switch the video output.

04Undo

✓No undo needed — this command does not change persistent state.

05Sources

  • mpv Manual
    mpv project · vendor-doc · 2026-09-17
    Evidence: Documents --screenshot-format (png/jpeg), --screenshot-directory, --screenshot-template, and the default screenshot keybindings s (frame) and S (subtitles included).
  • mpv — documentation source (screenshot options)
    mpv project (GitHub) · vendor-doc · 2026-09-17
    Evidence: Source of the mpv manual: screenshot options and the s/S keybindings that save the current frame to the configured directory.

Last verified: 2026-09-18 · Category: Media