Understanding the Default Behavior
By default, MPV saves screenshots as uncompressed PNG images. While this preserves maximum quality, it creates files that are often several megabytes in size even for short clips. This behavior is consistent across Linux, Windows, and macOS platforms because the core player logic remains identical. When you press the screenshot key (usually s), MPV writes the raw video frame data directly to disk without applying any lossy compression.
This high-fidelity approach is beneficial for archival purposes but problematic when you need quick access to visual references. Large files consume more storage space and take longer to transfer or index. If your goal is simply to identify a scene or share a quick preview, the overhead of uncompressed PNGs is rarely justified.
Changing the Screenshot Format
The most effective way to reduce file size is to switch from PNG to JPEG. JPEG uses lossy compression, which drastically reduces file size while maintaining acceptable visual quality for most use cases. You can configure this globally by editing your mpv.conf file, which is typically located in ~/.config/mpv/ on Linux and macOS, or %APPDATA%\mpv\ on Windows.
Add the following line to your configuration file:
screenshot-format=jpeg
Once this setting is active, all subsequent screenshots will be saved as .jpg files instead of .png. This change alone can reduce file sizes by 80-90% depending on the complexity of the image. For users who prefer not to edit configuration files manually, you can also pass this option via the command line when launching MPV:
mpv --screenshot-format=jpeg video.mp4
Adjusting JPEG Quality Settings
After switching to JPEG, you may want to fine-tune the compression level. MPV exposes the screenshot-jpeg-quality option, which accepts values between 1 and 100. Higher values result in better quality but larger files, while lower values increase compression artifacts but minimize file size.
A common sweet spot for balancing clarity and size is around 75-85. You can set this in your mpv.conf as follows:
screenshot-jpeg-quality=80
If you are using the command line, append the option like this:
mpv --screenshot-jpeg-quality=80 --screenshot-format=jpeg video.mp4
Values below 60 often introduce noticeable blurring or blockiness, especially in scenes with text or sharp edges. Values above 90 yield diminishing returns in terms of visual improvement while still increasing file size. Experiment with these settings based on your specific needs for image clarity versus storage efficiency.
Alternative: Using WebP
For an even better balance of quality and size, consider using WebP, which offers superior compression compared to JPEG. MPV supports WebP output if compiled with the appropriate libraries. Set the format to webp and adjust quality similarly:
screenshot-format=webp
screenshot-webp-quality=80
This approach is particularly useful if you plan to embed screenshots in web pages or digital documents where bandwidth and load times matter.
Performance Implications
Reducing screenshot size has minimal impact on playback performance. The primary bottleneck in screenshot generation is usually the I/O write speed rather than CPU processing. However, smaller files mean faster disk writes, which can slightly reduce latency when taking multiple screenshots in succession. This is particularly noticeable on slower hard drives or network-mounted storage.
If you find that screenshot creation still feels sluggish, ensure that your screenshot directory is on a fast SSD rather than a mechanical drive or network share. Additionally, avoid saving screenshots to directories with heavy indexing services enabled, as these can delay file creation notifications.
Locating Screenshots Efficiently
Smaller files are easier to sort and filter. Most operating systems allow you to quickly search for files by size. By standardizing on compressed formats, you can create simple scripts or aliases to list only recent screenshots under a certain threshold. For example, on Linux, you might use:
find ~/Pictures/mpv -name "*.jpg" -size -500k -type f
This command finds all JPEG screenshots smaller than 500KB, helping you ignore low-quality or accidental captures. On Windows, PowerShell equivalents exist, such as Get-ChildItem -Path $env:APPDATA\mpv\screenshots -Filter *.jpg | Where-Object {$_.Length -lt 500KB}.
Consistent naming conventions also help. MPV appends timestamps to filenames by default. Keeping these intact allows chronological sorting, which is invaluable when reviewing long videos.
Frequently Asked Questions
Can I recover lost quality after switching to JPEG?
No, JPEG compression is lossy, meaning original pixel data is permanently discarded. If you need both high-quality archives and small previews, save dual copies by running separate instances or using a post-processing script to convert PNGs to JPEGs selectively.
Does changing screenshot format affect video playback?
No, screenshot settings are entirely independent of video decoding and rendering pipelines. Changing screenshot-format only impacts the output files generated by the screenshot command or keybinding.
Why are my WebP screenshots not opening in some viewers?
Older versions of Windows Photo Viewer and some basic image editors lack native WebP support. Update your viewer software or convert the files to PNG using tools like ImageMagick if compatibility is required for sharing.
How do I disable screenshots entirely?
You can disable screenshot functionality by setting screenshot-directory=/dev/null on Linux/macOS or screenshot-directory=NUL on Windows. Alternatively, remove the keybinding for the screenshot command in your input.conf file.
Is there a limit to how low I can set JPEG quality?
Technically, you can set it to 1, but the resulting images will be heavily distorted and unreadable. A practical minimum is around 40-50 for complex scenes; simpler images may tolerate lower values without becoming unusable.