With the hardware of Android developing, we can now play all kinds of videos on a smart phone as long as there is a corresponding decoder. So, when the format cannot be played by the built-in players, we can use some applications like MX Player, which decodes most of them.
But, whether the video plays in high definition and smoothness or not depends on other matters but the player. There are in all four things related to the video quality—media codec, video resolution, bit rate and frame rate.
The .avi and .mp4 formats that we can see in daily life are the container formats but not codec. To be specific, the containers store video track and audio track, and present them as the media files that we play. Common container formats are as the following:
: Standard set up by Microsoft in the early 90s for fighting against MOV. It only supports audio files of fixed CBR and bit rate.
: Format for H.263.
: All-around container with great compatibility. External subtitle supported.
: For mpeg4.
: Developed by RealNetworks. Popular for a while because of the less space it takes. Later replaced by MKV.
: Only used in HDDVD.
: Developed by Microsoft.
Some media codecs are only used in specific container formats:
: MPEG-2, DIVX, XVID, WMV3, WMV4, WMV9, H.264
: WMV3, WMV4, WMV9
: RV40, RV50, RV60, RM8, RM9, RM10
: MPEG-2, MPEG-ASP (XVID), H.264
: ALL CODECS
Bit rate is the bits transmitted in unit time. Unit used most is kbps, meaning kilobit per second. The higher bit rate is, the better the video quality will be, because more details are presented in the same time interval. And frame rate is the pictures transmitted in unit time, with the unit frames per second. Of course, below a certain FPS, higher frame rate is better. (You cannot feel the difference if it is too high.)
Now that we know the important factors, it is not so hard to decide which format to choose. MKV would be my first choice most of the time. We need the video resolution to be higher than the screen's. And when the player supports, select videos of better codec, H264 and X264 for example. Want to find 720p or 1080p videos while your has small storage? Try H.264, H.263, H.263+, etc.