# MPlayer

MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A port for DOS using DJGPP is also available. Versions for the Wii Homebrew Channel and Amazon Kindle have also been developed.

## History

Development of MPlayer began in 2000. The original author, Hungarian Árpád Gereöffy, started the project because he was unable to find any satisfactory video players for Linux after XAnim stopped development in 1999. The first version was titled mpg12play v0.1 and was hacked together in half an hour using libmpeg3 from Cinelerra-HV. After mpg12play v0.95pre5, the code was merged with an AVI player based on avifile's Win32 DLL loader to form MPlayer v0.3 in November 2000. Gereöffy was soon joined by many other programmers, in the beginning mostly from Hungary, but later worldwide.
Alex Beregszászi has maintained MPlayer since 2003 when Gereöffy left MPlayer development to begin work on a second generation MPlayer. The MPlayer G2 project was abandoned, and all the development effort was put on MPlayer 1.0.
MPlayer was previously called "MPlayer - The Movie Player for Linux" by its developers but this was later shortened to "MPlayer - The Movie Player" after it became commonly used on other operating systems.

## Video acceleration

There are various SIP blocks that can accelerate video decoding computation in several formats, including PureVideo, UVD, QuickSync Video, TI Ducati and others. Two studies in 2007 and 2010 implemented hardware decoding for MPlayer, including for specific mobile device architectures.

## Capabilities and classification

MPlayer can play a wide variety of media formats, namely any format supported by FFmpeg libraries, and can also save all streamed content to a file locally.
A companion program, called MEncoder, can take an input stream, file or a sequence of picture files, and transcode it into several different output formats, optionally applying various transforms along the way.
A variety of command-line parameters allows changing the appearance of the player, including -speed [number], -af scaletempo for changing audio speed while maintaining the pitch, -ss (start at ___ seconds), -sb (start at ___ bytes), -endpos (stop playing at ___ seconds), -novideo for only playing the audio track of a video, and -loop [number] for looping.

## Media formats

MPlayer can play many formats, including:
* Physical media: CDs, DVDs, Video CDs, Blu-ray discs
* Container formats: 3GP, AVI, ASF, FLV, Matroska, MOV (QuickTime), MP4, NUT, Ogg, OGM, RealMedia, Bink
* Video formats: Cinepak, DV, H.263, H.264/MPEG-4 AVC, HuffYUV, Indeo, MJPEG, MPEG-1, MPEG-2, MPEG-4 Part 2, RealVideo, Sorenson, Theora, WMV, Bink
* Audio formats: AAC, AC3, ALAC, AMR, DTS, FLAC, Intel Music Coder, Monkey's Audio, MP3, Musepack, RealAudio, Shorten, Speex, Vorbis, WMA, Bink
* Subtitle formats: AQTitle, ASS/SSA, CC, JACOsub, MicroDVD, MPsub, OGM, PJS, RT, Sami, SRT, SubViewer, VOBsub, VPlayer
* Image formats: BMP, JPEG, MNG, PCX, PTX, TGA, TIFF, SGI, Sun Raster
* Protocols: RTP, RTSP, HTTP, FTP, MMS, Netstream (mpst://), SMB, ffmpeg:// (Uses FFmpeg's protocol implementations)
MPlayer can also use a variety of output driver protocols to display video, including VDPAU, the X video extension, OpenGL, DirectX, Direct3D, Quartz Compositor, VESA, Framebuffer, SDL and rarer ones such as ASCII art (using AAlib and libcaca) and Blinkenlights. It can also be used to display TV from a TV card using the device tv://channel, or play and capture radio channels via radio://channel|frequency.
Since version 1.0RC1, Mplayer can decode subtitles in ASS/SSA subtitle format, using libass.

### Available plugins

* XMMS plugins
* Avisynth

## Interface and graphical front-ends

Like GStreamer, MPlayer has only command line interface and there are a couple of front-ends available, which use GUI widgets of GTK, Qt or some other widget library. When not using these front-ends, mplayer can still display video in a window (with no visible controls on it), and is controlled using a keyboard.
* GTK-based are gmplayer (official) and Gnome-MPlayer
* Qt-based are SMPlayer and KMPlayer, among others.
* Cocoa-based are MPlayer OS X Extended and MPlayerX

## Forks

mplayer2 was a GPLv3-licensed fork of MPlayer, largely the work of Uoti Urpala, who was excluded from the MPlayer project in May 2010 due to "long standing differences" with the MPlayer Team. The main changes from MPlayer were improved pause handling, Matroska support, seeking, and support for Nvidia VDPAU; enabling multithreading by default; and the removal of MEncoder, the GUI interface, and various video drivers and bundled libraries, such as ffmpeg, relying instead on shared libraries. The developers also indicated intentions to enable MPlayer2 to use Libav as an alternative to ffmpeg. The first release, 2.0, was published in March 2011. There have been no subsequent stable releases.
mpv is a GPLv2-licensed fork of mplayer2. Since June 2015, mpv has worked to relicense its code as LGPL v2.1 or above.
MPlayer, MPlayer2 and mpv all use incompatible EDL formats.

## Legal controversy

In January 2004, the MPlayer website was updated with an allegation that the Danish DVD player manufacturer, Kiss Technology, were marketing DVD players with firmware that included parts of MPlayer's GPL-licensed code. The implication was that Kiss was violating the GPL, since Kiss did not release its firmware under the GPL license. The response from the managing director of Kiss, Peter Wilmar Christensen, countered that the similarities between the two pieces of code indicate that the MPlayer team had in fact used code from Kiss's firmware. However, the Kiss DVD player, released in 2003, used a subtitle file format that is specific to MPlayer, which was designed by an MPlayer developer in 2001.