High Performance Video / Movie Playback in Win32

I’m trying to get smooth playback of a relatively large MP4 movie file (1080p 60fps) in Windows 10. The goal is buttery-smooth playback, hardware accelerated, with low CPU usage.

Here’s what I’ve tried so far:

Xojo HTMLViewer / HTML5
Using a HTML5

Xojo HTMLViewer / QuickTime Plugin
Using a HTML5

  • Good performance.
  • Cross-platform codec (same movie is likely to play on Mac & Windows)
    Cons:
  • Performance is not perfect
  • Requires QuickTime plugin install
  • QuickTime is deprecated - although the QuickTime Plugin was updated recently to 7.7.8 Apple doesn’t actually list it as being Windows 10 compatible.

Other options I have not yet tried:
Xojo MoviePlayer, VLC or DirectShow (using MonkeyBread Software Plugins), Chromium Using the Xojo option to replace the IE engine with Chromium engine, Windows Media Player (I believe that Xojo MoviePlayer uses WMP/WMV internally, but am not sure…)

It seems like there are many ways to get OK performance, but getting extremely good performance is not trivial.

Any Ideas?

[quote=235475:@Michael Diehr]I’m trying to get smooth playback of a relatively large MP4 movie file (1080p 60fps) in Windows 10. The goal is buttery-smooth playback, hardware accelerated, with low CPU usage.

Any Ideas?[/quote]
1080p @ 60fps is never going to play smoothly in an HTML-based player. This is why you have to transcode for Vimeo / Youtube / Facebook, etc. The only way to handle that is with a native player.

Also, even the native playback tools can choke on 60fps depending on your CPU and Video card.

Is there some specific demand for 60fps playback? Dropping to 29.97 or even 24fps would make a very big difference. Also, what CODEC format are you using? With HEVC (h.265) available now, you could see a major improvement in quality at lower bandwidth settings.

Have you tried it using the MBS VLC Plugin?
http://www.monkeybreadsoftware.de/xojo/plugin-vlc.shtml

Actually on a fast machine, it seems to work pretty well. It’s interesting, however, that the same file opened in IE11 plays back just a bit better than it does inside a Xojo HTMLViewer (see link above).

Customers who demand the very best. :slight_smile:

It’s true that codec matters a lot, but unfortunately I don’t have control over the source files.

That’s an easy enough statement to make, but that doesn’t truly answer the why of it. Since every movie in the most theaters is still 24fps, where is the perceived loss of quality that requires 60fps (aside from bragging rights)?

That aside, Sascha’s idea is the probable best solution if you’re limiting your app to Windows. However, you may want to measure the performance of the built in MovePlayer control since it will use the best tech on each platform (Me.PlayerType = 2 in the MoviePlayer Open event on Windows).

BTW @Paul Lefebvre - There is no entry in the online docs for the MoviePlayer.PlayerType property <https://xojo.com/issue/41856>