I made a tweak to tinyvid.tv yesterday to transcode youtube high definition videos if the HD version is available. This results in bigger videos and therefore stresses the performance of the video implementation in Firefox.
I'm not tweaking any parameters when transcoding so it's possible that I could produce a Theora file with better playback characteristics. In particular I don't have the bandwidth to stream a file of this size. Instead I have to wait until a large portion is downloaded before playing it back. But even then playback performance is terrible.
With the file fully buffered on my dual core multi-gigabyte, multi-gigahertz laptop the sound stutters and the playback is slow. Not a great experience.
I tried playback of the ogg file with the example player from liboggplay. The playback performance is exactly the same as within Firefox. No surprise there since I use liboggplay in the implementation.
It's not a limitation with libtheora as the playback using libtheora's example player is very good. Low CPU usage, full framerate, great sound. So it looks to me like it's either a liboggplay issue, or an issue with the way I'm using liboggplay. I've raised a trac ticket with the liboggplay developers to see if they can offer any advice.
I've also raised bug 474540 in the Mozilla bugtracking system to track the fix to apply for Firefox.
Non-HD videos play fine for me, it's when they get to about 720p that things fall apart. The fact that libtheora plays these well makes me confident that we can get the performance for these files much much better.