What is the difference between fast and accurate seeking in mpv?
The difference between fast seeking and accurate seeking in mpv comes down to a trade-off between speed and precision. Fast seeking instantly jumps to the nearest video keyframe, which may not be the exact timestamp you requested, while accurate seeking (also known as precise or high-resolution seeking) lands on the exact second or frame you want by instantly decoding the video from the preceding keyframe up to that target point.
Fast Seeking (Keyframe Seeking)
Fast seeking is the default behavior for broad navigation in mpv. Modern video formats use temporal compression, meaning they only encode full pictures—called keyframes or I-frames—every few seconds. The frames in between only record the differences between changes.
When you perform a fast seek, mpv moves the playback head straight to the closest available keyframe. Because the player does not have to spend processing power recalculating the intermediate frames, the jump happens instantaneously. However, this means if you ask to seek forward by 5 seconds, mpv might actually jump 3 seconds or 7 seconds forward depending on where the nearest keyframe is located.
Accurate Seeking (High-Resolution Seeking)
Accurate seeking—controlled by the --hr-seek option in
mpv—forces the player to land exactly on your requested timestamp, down
to the specific millisecond or frame.
To achieve this level of precision, mpv cannot just drop you at a keyframe. Instead, it locates the closest keyframe before your target time, quietly decodes all the intermediate frames in the background at maximum hardware speed, and then displays the exact frame you requested.
While this ensures perfect accuracy, it requires brief CPU or GPU processing. Depending on how far apart the keyframes are encoded in the video file and your system’s performance, accurate seeking can cause a slight, noticeable delay or a brief pause before playback resumes.
Comparison Overview
| Feature | Fast Seeking (hr-seek=no) |
Accurate Seeking (hr-seek=yes) |
|---|---|---|
| Precision | Approximate (closest keyframe) | Exact (specific frame/timestamp) |
| Speed | Instantaneous | Dependent on system decoding power |
| Resource Usage | Extremely low | Medium to high (burst decoding) |
| Best Used For | Skipping intros, commercial blocks, or large chunks | Frame-by-frame analysis, clipping, or precise review |
Managing Seeking in mpv
By default, mpv balances both options using the default
setting for --hr-seek, which applies fast seeking to large
jumps (like using the Up/Down arrow keys for 1-minute skips) and
accurate seeking to smaller increments (like using Shift + Arrow
keys).
If you want to force mpv to always prioritize exact precision
regardless of the jump size, you can add hr-seek=yes to
your mpv.conf file. Conversely, if you are playing
high-resolution 4K video on an older machine and experiencing lagging
freezes when skipping around, setting hr-seek=no will
disable precise seeking and ensure your playback stays fluid.