Ask just about any Linux user, and they’ll more than likely recommend VLC Player as the best choice for playing any media format you can think of. They have plenty of reasons to do so as VLC is indeed a fantastic piece of software with plenty of awesome features. But it only offers one implementation — a complete media playing package that uses its own technologies (such as its own hardware acceleration) as well as its own GUI.
In the spirit of Linux, you may wish to use something that’s a bit more modular. This way, you can use a single media decoder and then customize everything else about it.
About MPlayer for Linux
MPlayer is a different player that only consists of a backend. This means it runs in the background that does all of the decoding, or “playing”. But that’s all it includes, so there’s no Graphical User Interface (GUI) out of the box. Instead, there are a handful of different GUIs which you can choose from, such as GNOME MPlayer, SMPlayer, and KPlayer, just to name a few out of many. While MPlayer is primarily used on Linux (which will be the focus of this article), it is also available for download for Windows and Mac OS X as well.
Installing MPlayer without any of your own modifications is very easy to do under Linux. Just search your respective package manager for the GUI frontend that you wish to use and install it. It should automatically install an
mplayer package as a dependency — if not, just find and install it yourself. Once it completes, just launch your GUI frontend and start playing some media!
Similarly, VLC player can be installed by searching for VLC in your respective package manager.
MPlayer can support a respectable number of formats, including:
- MPEG-1 (VCD) and MPEG-2 (SVCD/DVD/DVB) video
- MPEG-4 ASP in all variants including DivX ;-), OpenDivX (DivX4), DivX 5 (Pro), Xvid
- MPEG-4 AVC aka H.264
- Windows Media Video 7/8 (WMV1/2)
- Windows Media Video 9 (WMV3) (using x86 DLL)
- RealVideo 1.0, 2.0 (G2)
- RealVideo 3.0 (RP8), 4.0 (RP9) (using Real libraries)
- Sorenson v1/v3 (SVQ1/SVQ3), Cinepak, RPZA and other QuickTime codecs
- DV video
- Intel Indeo3 (3.1, 3.2)
- Intel Indeo 4.1 and 5.0 (using x86 DLL or XAnim codecs)
- VIVO 1.0, 2.0, I263 and other H.263(+) variants (using x86 DLL)
- MJPEG, AVID, VCR2, ASV2 and other hardware formats
- various old simple RLE-like formats
- MPEG layer 1, 2, and 3 (MP3) audio
- AC3/A52, E-AC3, DTS (Dolby Digital) audio (software or SP/DIF)
- AAC (MPEG-4 audio)
- WMA (DivX Audio) v1, v2
- WMA 9 (WMAv3), Voxware audio, ACELP.net etc (using x86 DLLs)
- RealAudio: COOK, SIPRO, ATRAC3 (using Real libraries)
- RealAudio: DNET and older codecs
- QuickTime: Qclp, Q-Design QDMC/QDM2, MACE 3/6 (using QT libraries), ALAC
- Ogg Vorbis audio
- VIVO audio (g723, Vivo Siren) (using x86 DLL)
- alaw/ulaw, (ms)gsm, pcm, *adpcm and other simple old audio formats
It can even support encrypted DVDs and an array of video and audio output devices. Since most of us will be using our monitors and/or VGA and HDMI outputs, that shouldn’t be important to most regular users.
For comparison, VLC supports the following formats:
- MPEG (ES,PS,TS,PVA,MP3)
- ASF / WMV / WMA
- MP4 / MOV / 3GP
- OGG / OGM / Annodex
- Matroska (MKV)
- Real (partial support)
- WAV (including DTS)
- Raw Audio: DTS, AAC, AC3/A52
- Raw DV
- FLV (Flash)
- Standard MIDI / SMF
- Creative™ Voice
Like I mentioned earlier, with MPlayer you have a choice of various GUI frontends, or “Skins”. In total there are 49 listed GUI frontends on MPlayer’s website, so you have a lot of choices. These range from GUIs aimed for various desktop environments to GUIs written in different programming languages such as Java or Python. The beauty of this fact is that you can choose the GUI that you like to use best or what suits your situation the best.
If you’re at a loss at which one to try out and probably don’t have any special needs, then I’d recommend GNOME MPlayer, SMPlayer, or KPlayer, where GNOME MPlayer is recommended for GNOME users and KPlayer for KDE users.
VLC, on the other hand, sports its own interface that is the same across all systems. While this has the advantage of providing a more familiar interface for fellow VLC users, it does take away some customization flexibility that MPlayer has. I find that VLC’s interface is well organized, albeit not the prettiest one you’ll find. VLC doesn’t aim to be the easiest-to-use media player, but rather a media player that works well across a large number of formats.
MPlayer may already be a fantastic solution because of its modular architecture, but it can be improved even more in ways that VLC cannot. For example, you can recompile MPlayer with Linux software called CoreAVC which can provide a better way of decoding videos with multiple cores, which can be a lifesaver if you plan on playing plenty of 1080p videos on relatively low-powered hardware. This provides a different approach as it uses multiple CPU cores rather than your graphics card (which VLC does to the best of my knowledge). Ideally, graphics cards have more power for decoding than CPUs because of their larger integer units, but you will still want to use your CPU if you have a crappy integrated GPU rather than a dedicated card.
The process of compiling MPlayer with CoreAVC is a bit long and complicated, but there’s a guide here which you can follow.
Whether MPlayer or VLC is better is up to you because VLC is easier to configure and use, but MPlayer could provide more benefits in the long run with various system configurations. Whatever the case is, it’s important to know that there’s another fantastic media player besides VLC, and that it’s worth taking a look if you’re getting tired of VLC or find that it’s not performing as optimally as you think it should.
For other great Linux software, check out our Best Linux Software page!
What media player do you use in Linux? What one do you think has the best features, or performs the best? Let us know in the comments!