19

I use mpc-hc to play videos on Win7 x64. With the default settings (#1), video playback is great most of the time. But for panning shots, playback is not smooth. I stepped through the video frame by frame and found that the panning movement is smooth (e.g. each frame shifts horizontally by 10 pixels), so the problem is how the 23.976 fps video is interpolated to 60Hz.

The judder looks like what would be caused by a "2:3 pulldown", where the frames are played unevenly like:

frame 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, etc (#2)

Using "optimal renderer settings" (#3) instead of the default disables the Aero theme and causes tearing.

Setting my LCD display to 50Hz may have improved the judder slightly (but I can't really tell). My display does not support 24Hz or 48Hz, and forcing them in the Nvidia control panel gives blurry screen.

I've tried other video players (VLC and KMPlayer), the ReClock Directshow Filter, video files from different sources (#4), turning on/off DXVA, and a computer with a different GPU, but the judder in the playback is similar. None of them solved the problem.

Is it possible to play 23.976 or 24 fps video smoothly on a 60Hz display?

I think a video player could make the video smoother by doing linear interpolation, such as:

1. 100% frame 1
2. 60% frame 1 + 40% frame 2
3. 20% frame 1 + 80% frame 2
4. 80% frame 2 + 20% frame 3
5. 40% frame 2 + 60% frame 3
6. 100% frame 3
7. 60% frame 3 + 40% frame 4
.. etc

Can any existing video player do this?

Footnotes:
(#1) Video renderer: EVR Custom Pres.
(#2) This example converts a 24 fps video into 30 fps
(#3) View > Renderer settings > Reset > Reset to optimal renderer settings
(#4) The files I have are all H.264 mkv files, but I don't think the file format/encoding matters.

2
  • 3
    This sounds familiar–I've noticed this on almost any video I play, to some degree. When I ask others, they always say it looks smooth to them...
    – oKtosiTe
    Feb 6, 2011 at 18:25
  • Some of this processing is your video card's responsibility, and some GPUs do far better than others at it. It's part of the standard video tests that Anandtech.com use to review video cards in the context of HTPC usage. Not an answer, I know, but a useful piece of information, I would hope. Check out Anandtech's "Discrete HTPC GPU Shootout" with emphasis on page 6 ( anandtech.com/show/4380/discrete-htpc-gpus-shootout/6 ). I ended up buying a Radeon HD 6570 because of this review and it does a fantastic job - not perfect, but on average better than everything else.
    – evilspoons
    Feb 14, 2012 at 20:01

8 Answers 8

13

Check out SmoothVideo Project:

SVP allows you to watch any video on your PC file with frame interpolation (like you can watch it on high-end TVs and projectors). It increases frame rate by generating intermediate animation frames between existing ones to produce very smooth, fluid and clear motion. The technology is well-known for a while ("TrimensionDNM", "Motion Plus", "Motionflow" and others), but now it's available for free to PC users with simple GUI and just a couple of mouse clicks.

2
  • Have you got any personal experience with SmoothVideo, you might want to add that to the question! Are you in any way related to SmoothVideo? We would appreciate full disclosure if you are. Happy SUing!
    – Pylsa
    Feb 14, 2012 at 16:38
  • I was going to post about SVP :-) I found it about two months ago. Depending on the video, the default options may cause a lot of artifacts. With some tweaking (mostly making it less aggressive in identifying motion), it works great for me!
    – netvope
    Feb 14, 2012 at 17:55
3

I don't know of a player that can do that on the fly, but you can convert any video of 24/25fps into a nice 60fps video by re-encoding the video with interframing.

here is a very nice step by step tutorial to do it. It includes before/after video samples. http://www.spirton.com/convert-videos-to-60fps/

1
3

Your idea for making video playback smoother by means of what you call linear interpolation is simply a blend method of frame rate conversion (or Blend FRC). MediaPlayer.NET (MPDN) employs this technique and calls it "Fluid Motion". madVR calls it "Smooth Motion".

This method of FRC is the most basic of what SVP uses. However, both MPDN and madVR have the ability to detect the actual display refresh rate to a very high precision. While it is unlikely that you'll notice a dropped / repeated frame at 60Hz, SVP still suffers from the (however slight) mismatch of input / output rate (e.g. 60.001Hz+Reference Clock Deviation vs 60FPS). Using SVP is also a lot more GPU intensive than the player's blend FRC which costs only a fraction of render time.

If you're able to overclock your display, MPDN's rate tuner gives you an alternative to blend FRC and is generally considered the better option. Blend FRC can cause blurring / ghosting so it should be taken as the last resort. See MPDN rate tuner wiki on GitHub for more info.

Disclaimer: I'm the author of MPDN.

3

You should try mpv with it's --interpolation option, preferably through a GUI like SMPlayer. It does something very similar to what you describe.

Install SMPlayer and do the following in the settings:

  • Under General->Video select "Output driver": "user defined" and enter opengl-hq
  • Under Advanced->MPlayer/mpv put the following in Options: --interpolation --video-sync=display-vdrop --tscale=oversample

Videos should now play almost as smoothly as on a native 24Hz display, but without any "soap opera effect".

Here's a (possibly outdated) technical explanation of what this option does (the "smoothmotion" section).

1
  • FTR, some more information can be also found in discussion on github here.
    – Hi-Angel
    Aug 1, 2021 at 19:48
1

I often play 24fps video in VLC on a 60hz display, and it displays smoothly through the default renderer w/ nVidia hardware acceleration, doesn't seem to judder (not sure what method it uses).

1
  • 1
    Thanks for trying, but enabling VLC's GPU acceleration on my GeForce 9300 doesn't improve the judder for me.
    – netvope
    Dec 26, 2010 at 6:54
1

For anyone on a 60hz monitor: as a first step, make really sure your monitor doesn't support 23.976hz, 24hz, 47,952hz or 48hz, using your GPU's control panel (either NVIDIA, AMD or Intel). It likely won't be listed, so this will involve creating a custom resolution and testing it.

OP says he's done this, so, we need some form of frame interpolation. The most painless way of doing this nowadays would be to use madVR's smooth motion option.

enter image description here

To use madVR, install MPC-HC and madVR, select madVR as the renderer in MPC-HC's options. If all goes well, in MPC-HC you should be able to hit CTRL-J and see this:

enter image description here

Underlined in red is what's important here, running at 60hz but with smooth motion on. It won't be perfect but it's basically the best you can hope for trying to fit 24 frames in 60 refresh cycles.

1

Someone else mentioned the Smooth Video Project. This could potentially help but sometimes the motion smoothing makes something intended for a lower frame rate look poor because 24fps video has motion blur built into the individual frames. Motion Smoothing does make video shot on digital look better though.

The video player MPV has motion smoothing or intra-frame interpolation built in. You should check it out.

-1

Have you tried disabling "Skip frames" in the VLC options?

1
  • 3
    skipping frames makes the video more jerky, not smoother
    – phuclv
    Sep 2, 2013 at 7:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .