Kristian Lyngstøl's Blog

1080p under GNU/Linux

Posted on 2009-02-03

I recently bought a 24" monitor with 1920x1200 resolution, and suddenly found myself actually caring about HD. I assumed my Core 2 Duo E6600 (2.4GHz) combined with nVidia 8600GT would handle it...

Now, as it turns out, it ALMOST handles it. By renicing mplayer to -19, I can mostly get through the munin update that polls localhost + 3 virtual machines running on localhost without mplayer lagging. The framerate might take a bit of a dip, but I can live with that (after all, that's a significant load spike).

For those who aren't familiar with HD, 1080p refers to video with a vertical resolution of 1080 pixels, typically 1920x1080. The p indicates progressive scan, as opposed to interlaced. The codec used is typically H264, which is what I'll focus on.

Anywa... I just discovered that nVidia released a driver as late as January 8th 2009 that contains support for GPU-accelerated h264 decoding. They even supplied ffmpeg and mplayer patches to enable it. As much as I dislike the proprietary aspect of nVidia, I must say that they have always been miles ahead of everyone else with their Linux drivers. This nvnews article (http://www.nvnews.net/vbulletin/showthread.php?t=123091) announces the support for VDPAU, the API needed to do all this magic. It also points out that the support is preliminary, and that it's not stable yet. But for any HD-loving GNU/Linux-user with an nVidia card, this is great news.

Back to my non-gpu-accelerated setup... While it currently works, I won't say it works great. The cpu core with mplayer is resting neatly at 95-100% usage, and that's not good. Additionally, I'm getting quite a bit of tearing, which I'll look into. Hopefully, I can solve that with some vsync-tweaking... I am, after all, running compiz during all of this.