120fps 720p footage with real time playback on Ubuntu? + editing? I have a laptop with an i7 CPU, 1.73 GHz, 8GB RAM, Ubuntu 10.04 with an "ATI Mobility Radeon HD 5800 Series" graphics card. I have compiz enabled (which may be one of the culprits with the problem below).

I have recorded a few short videos in 720p resolution at 120fps (GoPro Hero 3), stored on my local HD. The mp4 videos range from 30MB to 500MB, so quite small.

I tried a variety of players, none of which seem to respond in real time  . In fact the response time is so bad that I get a few frames quite fast at the start but then only the odd frame every second to 5 seconds and the sound seems spliced! One of my 8 cores runs into the ground (100%), the others are essentially unused, with the video player process running at 98%. So obviously this is my limiting factor (can't multi-thread?).

(mplayer, xine both try to play in real time but drop many frames; vlc plays the sound, but shows impressionist rendering and then gets stuck on one frame quite early on; avidemux plays every frame but about 1/6th of real-time speed; cinelerra plays some of the frames only and quite slowly; kdenlive does not allow me to create a 120fps project; Kino converts and down-samples; Lives can't follow; OpenShot plays the sound Ok, but gets stuck on the first frame)

Playing standard 1080p 30fps footage uses about 65% of one core. I did expect that playing 120fps would drop frames, but not to the extent that I only see one every few seconds. In fact I thought that it would play about 1 in 4, which would be great for my purpose.

So I'd really appreciate if any of you had any hint as to how I should configure my video card, system or whatever to get better playback ability, i.e. real-time playback with my raw footage (without conversion or down-sampling prior to viewing).

This also affects my ability to edit the videos as I can't tell what I'm looking at in real time, which is very inconvenient when editing. I do not want to down-sample for the first stage of editing as I want to get a feel for the full video first and choose which sections to slow down for slow-motion and which sections to down-sample for normal real-time play.
While it is true that 720p video only has about half the data of a 1080p feed, the other thing you have to realize is that when you push the system beyond it's limit, it may spend a lot of time trying to process frames that it doesn't finish in time.  Depending on how the player is configured, it may give up and try to catch up rather than finish rendering the frame and get further behind.

Because of this, as soon as you get behind, you may now end up finding it is much harder for it to catch up.  You also run in to problems with keeping the data flowing quickly enough since the level of compression sounds like it may be higher (harder to decode) and the CPU is so busy that it can't be working on moving data up to be ready to read.

You probably should do a transcode of the video to a lower framerate and work with the transcoded copy to make editing decisions and then swap in the high framerate video only at the end.  After all, the only difference 120fps video will make on final output is anywhere that you end up doing a slow motion effect since you aren't going to have any display (including your computer screen) that can actually load 120 frames per second in to the image buffer.  Even 240hz screens are not displaying that many frames from a source.