mpv-player / mpv-player/mpv

Allow interpolation to function as frame-doubling, tripling etc

Open
#15,748 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

meta:feature-request
Dominant language
C
Stars
37k
Forks
3.5k
Avg merge
1d 10h
Merged PRs (30d)
22

Description

Expected behavior of the wanted feature

video-sync=display-resample works very well to interpolate videos to the refresh rate of the display, and the methods are also very good and fast.

however, with adaptive-sync being standard now for almost all monitors, interpolation to the maximum refresh rate is not always needed or even desirable.

for screens with low-framerate-compensation, it is trivial to use video-sync=audio, mpv will present the frames and the driver will double/triple them to be synced by the display perfectly.

however: cheaper screens with 75Hz often do not allow LFC as their range does not double from the minimum. this can be worked around by using the vf fps=source_fps*n without issue combined with autoprofiles to double the frames without requiring the driver to do so.

24p/25p content especially is still notably poor especially on panning scenes and such, that is the nature of the low framerate, however even a simple linear blending of frames between can greatly improve the smoothness, ontop of simple frame doubling, even for 30p. the adaptive sync solves judder from pulldown or sync division mistiming, but not from simple low framerate.

it would be very nice, if it could be somehow allowed for MPV to use its interpolation methods, not only to target the maximum display refresh, but to double/triple the framerate instead, but otherwise synced to the audio.

this could allow the best of both words, and have smooth interpolated playback at a multiple of the source refresh and reduce unnecessary blurriness that would be involved in say, 24p->60p that would not occur with 24p->48p.

this would also allow for reduced resource consumption on high refresh screens, to interpolate say not 24p->144p but 24p->48 or 72p.

Alternative behavior of the wanted feature

No response

Log File

No response

Sample Files

No response

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the configuration and playback paths for video-sync=display-resample, video-sync=audio, interpolation, and vf fps, including how autoprofiles can select them. The feature is done when interpolation can target a configurable integer multiple of the source rate, remain audio-synced, and avoid requiring interpolation all the way to the display's maximum refresh rate.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
audio-video-rtc, cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.