I don't really understand the whole container/codec thing, but in my experience AVI always seems to be poorer in quality than mkv or mp4. I don't know why that is.
If it can stream mp4, I'm in.
To understand, start with pictures.
You know that you can have a jpg, png, gif, tiff, etc etc.
Those are at once an image format, compression scheme, and a filename extension telling you what you got.
That works because a picture is one thing.
But a movie file contains at least two things - a video stream and a matching but separate audio stream. You could make a file for each one.
But we don't - we make a single file that holds both and we call that file of files a container.
Each video and audio stream (subfile is ok way to think about it) has its own format and compression scheme (remember the picture files idea) - and the code/decode scheme for each is called a codec. If you know that music can come as an mp3 or a wav or an aac, then you get it.
You can mix and match video and audio codecs in lots of combinations.
But each container type can only hold just some specific combinations.
You can have two movie files with the same filename extension (indicates the container type) and maybe they'll have the same video codec but different audio codecs - or vice versa.
So some containers can only hold one combo by design, that's it, no variations, while others can hold multiple combos.
But devices play based on codecs - they open containers but they play codecs.
PCs don't come with all codecs, whether Windows, OS X, or Linux, you have to install more than the default to get stuff done.
And that means that you have to have space and then do updates. Just like everything else.
And I bet that makes perfect sense from experience.
Now, turn to mobile and if you have Moboplayer or MX Player, look at the options - you can choose to prefer hardware decoding when available.
Mobile processor makers know that you want to play multimedia - you can create it by turning on your video recorder, after all.
So they bake in some good codecs right on the processor.
But not all, that would be insane.
If you want more, you need the storage and ram for a good app that can decode using software.
Fine for your phone or tablet, if you want that, you get the hardware you demand to support the software you require.
But not Chromecast.
It has 512 MB ram, 2 GB of storage.
And it runs one app.
A highly specialized browser and the services to support that specialization - power, HDMI, DRM, wifi, update services, remote control - and a FEW codecs.
That it streams.
It's made to specialize in 1080p video with surround sound.
And it does that extremely well.
People are expecting it to do everything else and that's not going to happen.
That would break it.
It's not going to get a processor hardware upgrade over wifi and it's not going to start running more apps to do software decoding of the great history of codecs.
If you want to play a foreign codec in your collection, you have to have the sender transcode it (aka translate the streams into something else) into something that Chromecast already understands.
If you've used Handbrake to rip your movies for your phone or tablet, you've transcoded.
And transcoding on the fly is not trivial. It takes some real processing power. It takes the horsepower to do that and keep two separate streams - audio and video - synchronized. Hence the requirements Google sets for PCs to use the BETA version of tab casting.
And through all of this we're going to hear a lot of bitching and whining that Chromecast is broken, no good, is a ripoff and needs updating.
Chromecast is fine.