The biggest weakness in stand-alone .avi/.divx players is they are limited to standard DVD resolution.
I've bolded a key point there. It's the players, specifically the *hardware* set-top players, that can't play HD in AVI/DIVX containers/formats. The AVI container and various video codecs that can be contained within it can handle HD just fine. You can even put h.264 into an AVI container. It's not an "officially supported" option but most decent players (e.g. KMPlayer, GOM, Splayer, MPC, etc.) handle it just fine.
Anyway to answer your question, it sounds like there a few general points which may help you understand.
There are several elements that go into determining your video/audio playback experience with any given content.
The container (AVI, MKV, etc.) mostly influences what kind of data can be embedded in the file and how easily it is parsed/accessed. So an older container format (e.g. AVI) won't have as much flexibility as far as embedded or multiple subtitles or multiple audio tracks or menus, and will have generally have less supported flexibility in video/audio codec combinations. The container can affect your playback experience to be sure, particularly where it comes to streaming, but mostly it's the codecs and content within it that will do this. That being said, containers do generally specify the way in which the data may be stored, accessed, and "interleaved" (audio/video sync). So this can affect (and cause problems) in particular with both seeking (the granularity allowed for chunk access) and for audio/video sync (AVI for example doesn't handle A/V sync with certain video/audio codec combinations).
See here for more:
http://en.wikipedia....ia_container_formatsThe codecs used can influence both audio and video quality, playback performance on given hardware, and especially seeking, startup, and streaming performance. Some codecs are optimized for small chunks of data without much interdependency, which makes them potentially good for streaming and seeking, but may decrease their encoding efficiency for example. h.264 strikes a great balance for video though, generally speaking. AAC likewise for audio. Both allow good streaming (in the right container formats), and pretty much the best currently available quality at a given compression ratio. WMV (actually this is usually a reference to an ASF container format, though the file extension may deceive you) as a container, and the WMV codecs that may be inside it, are generally less friendly to random seeking, and are also often times heavier on system resources when decoding (if not hardware accelerated), hence your experience and resulting preference in media files. I have the same preference and tend to avoid WMV files unless they're the only thing available.
Remember that a codec is really both an encoding method/process and a decoding method/process. The "method" is a software system of some kind. So if you have a particularly good or bad encoder, it can affect the end result, and likewise if you have a particularly good or bad decoder, it can affect the result/experience. On the encoding end for example, you can have encoders that support more advanced features, or you can use special encoding methods like multi-pass which give you improved quality for a given bit rate, or better compression. On the decoding side you need a decoder that supports all the features of the encoder, and one that operates efficiently with low CPU use, perhaps even one that's accelerated by a GPU in your system, or that is multithreaded for a multi-core CPU. This is why there is a market for high-performance format decoders like CoreAVC. See here for more:
http://en.wikipedia.org/wiki/CodecFinally, the system you play things back on obviously has an effect, and this is not just the hardware, but also the software environment as I said above. You may get a really well compressed h.264+AAC file in an MKV container but be unable to play it back well because you don't have a speedy decoder, or your decoder isn't multithreaded, GPU-accelerated, etc. But the hardware is of course a huge influence. For most playback needs a fast single core CPU serves you best. RAM is generally not too important, though some very large files and particular players or playback methods may require surprisingly large amounts of memory. Generally the chunk size of a video/container will determine this though, and if properly done no video file, even upwards of 25GB (Blu-ray files) should require more than 100MB of memory for your player.
Anyway I think that gives you something to chew on.
- Oshyan