Published by Arto Jarvinen on 23 Feb 2009
Video on Linux without tears
I have been running the Ubuntu flavor of Linux for some time on many of my computers. It works surprisingly well for all types of typical office and Internet related applcations and it’s absolutely free. Should I start my own business on a shoestring budget right now, I would definitely choose Ubuntu.
One area where Windows is still easier to get to perform well is video. The Microsoft DirectShow architecture for multimedia is very well designed. (Perhaps because it was so well designed from the beginning, it hasn’t been much changed in many years, and still requires considerable C++ skills and a lot of manual “COM plumbing”.) Given a reasonable set of DirectShow codecs installed (preferably including the ffdshow codec pack) any media player in Windows plays anything you throw at it. There are for instance high quality, GPU-supported codecs for the new and increasingly common AVCHD video formats in Windows but not in Linux. It is nowadays also easy to get video rendering free of tearing. (In short, tearing is a visual artifact that occurs when the display begins reading from a video buffer before your application’s rendering to that buffer has completed. The result is that you see parts of two consecutive video frames with a “tear” between them.)
![]() |
| Tear-free rendering with this option in MPlayer |
Ever since I started using Linux, I have been annoyed by the tearing in all video players with their default settings. I did some experimenting with the various rendering methods in VLC and MPlayer (called “drivers” in MPlayer and “video output” in VLC) . I finally stumbled upon tear-free video using the OpenGL rendering method.
Why a tear-free method isn’t the default rendering method seems peculiar to me. Maybe casual viewers with small screens don’t mind it but if you splash out the video on a 100” screen with a projector, the tearing becomes very annoying. The OpenGL method is said to take more computer resources but the VMR9 renderer in Windows, that uses a (presumably) similar texture based rendering method, has worked well on all hardware that has come out during at least the last 6 years (as long as I’ve been using a home theater PC, which in my case still is a machine running Windows XP).
Anyway, if you, like me, like high quality video, then do switch on your OpenGL renderer in Linux. You will still get the judder caused by the mismatch between the video frame rate and the display refresh rate. One day I may get the inspiration and the hours to port the GothPlayer to Linux for a tear-free and judder-free rendering but no commitments as of yet…

