How to deliver video to the Wii

August 5, 2007

The first couple of weekends I spent building proof-of-concepts for all different stages of the problem, and deciding which way to go. It was obvious that a server (the computer hosting the media files)/client (the Wii) architecture would be needed. Since the Wii will be connected trough WLAN, I assumed bandwidth not to be an issue. For the time being, I also assumed the computing power at the server to be unlimited.The first decision to be made was how to make the browser play video. I figured there are two possible ways. The most obvious one is using flash, the other option is using jpegs in the browser. Obviously the first option is the fastest to implement, but the performance problems, described above, I also looked at the second option. The idea would be to have a webserver serve arbitrary frame as a jpeg file. Using Javascript, the jpegs would be retrieved realtime, buffered, and then displayed. Obviously some sort of sound synchronisation would be needed as well. This system did work when running both the server and the client on my own computer, however the WLAN link and rendering power of the Wii made it all choppy on the Wii. Perhaps though, with a Wii LAN connector, and some other image format, it might have worked. I left it at that for the time being, exploring the flash option.

The most obvious solution for flash video would be to use progressive download. The first “hello world” actually did work this way, however, the low memory capacity of the Wii killed this idea. After about 5 minutes of playing, short lockups and framedrops would ocure. After 20 minutes these would become longer lockups of about 0.5 seconds, and after about 25 minutes, it would have downloaded about 110 MB of flv file, and the console would show an out of memory error and restart. So in short: playingYoutube videos, not a problem, playing tv-series of movies: not an option.

The problem here is that progressive download caches the whole file, as to enable seeking back. There is no option to switch this off, so it seemed this was not going to work. I played with the idea of cutting the file in 5-minute parts and playing them in sequence, but I didn’t think I would get the timing right, so one would be stuck with a small ‘gap’ every five minutes.

So the only solution would be to use a streaming Flash media server. This enables the client to seek, while not more than a couple of seconds of video are cached at the client. I will describe this server in a later post.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: