Apparently, you can't write any sort of article on multimedia without mentioning the multidimensional MPlayer – and for good reason. Its powers are beyond human comprehension, but we do know it can play just about any file format out there on any platform.
MPlayer has a set of native codecs in libavcodec, which it borrows from the FFmpeg project, as well as a set of binary codecs for playing videos in proprietary containers. With these two, you can throw all your MPEG, AVI, ASF, WMV, RM, QT, MP4, OGG, MKV and FLV files at MPlayer and it'll play them.
QUICK START: The first version of MPlayer was laboriously put together in no less than 30 minutes!
The recommended way to enjoy MPlayer is to compile it from source for tighter integration with your hardware. Still, for standard Intel/AMD boxes, it's best to grab MPlayer off your distro's repository, since it's already optimised for the common multimedia extensions (MMX2, SSE2, Enhanced 3DNOW! and so on).
The latest version takes some load off your CPU by enabling MPlayer to offload portions of video decoding to the GPU in newer Nvidia cards. MPlayer's all-encompassing nature extends to the number of output drivers it works with, and ranges from plain VESA and X11 to the more exotic OpenGL, as well as card-specific drivers for ATI, Nvidia, Matrox and others.
Primarily, MPlayer is controlled via the command line, although the developers also make a GUI, which you can customise with dozens of available skins. It has an on-screen display and gives a visual feedback once a parameter is adjusted. You can also control it with the mouse, a joystick, or an infra-red remote via LIRC.
Thanks to libdvdread and libdvdcss, MPlayer has no trouble playing DVDs. If you compile it with libdvdnav it also enables you to navigate DVD menus. You can easily select from multiple audio feeds and you can ask MPlayer to pipe audio to your surround sound system. You can also do tricks with the audio output, such as move channels from one speaker to another.
No index, no problem MPlayer offers a lot of advantages for playing local video files, even damaged ones. After all, it doesn't take a lot for a video file to go bust. If you exchange videos – legally of course – with your friends, or create them via camcorder, then split them repeatedly or transfer them via USB, you'll eventually end up with some that are missing their index chunks.
You can still play these videos, but you won't be able to seek forward or backward. That is, if you're not using MPlayer, which doesn't discriminate against files that are missing the index file. You can even use the bundled Mencoder to create the missing index.
The next most common damage is audio/video mismatch. Likewise, if you've ripped a video from a DVD along with the subtitles, you might need to adjust the subtitle timing. Both of these problems are easily solved with MPlayer.
Talking of subtitles, the player supports more subtitle formats than you probably knew existed. There are many ways to modify playback using the numerous audio and video filters. You can crop a video, scale it and flip it upside down, mirror and rotate it, or expand the playing area to move the subtitles off the video into the black bands underneath.
Once you've fine-tuned the options for a particular video, you can store them as a config file, which means you can have unique configurations for all your videos. MPlayer can also stream files over a network via the HTTP, FTP, MMS or RTSP/RTP protocols, and is capable of working with a proxy. You can exploit the protocol handling, along with its ability to read standard input, to play files while transferring them via FTP.
MPlayer can also save internet streams, and if you have a Video4Linux compatible TV or radio tuner card, MPlayer enables you to watch or grab its feeds. The possibilities are endless!
Version: Daily SVN snapshots
Price: Free under GPL
There's no beating this video player in terms of features, with almost every possible need catered for.