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.