Recent from talks
Nothing was collected or created yet.
MPlayer
View on WikipediaThis article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
| MPlayer | |
|---|---|
MPlayer on Linux using the gMplayer front-end | |
| Developer | MPlayer team |
| Initial release | 2000 |
| Stable release | |
| Repository | |
| Written in | C |
| Platform | Cross-platform |
| Available in | English, Hungarian, Polish, Russian and Spanish |
| Type | Media player |
| License | GPL-2.0-or-later[3] |
| Website | mplayerhq |
MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for legacy systems such as OS/2 and AmigaOS were previously available, but are no longer actively maintained. A port for DOS using DJGPP is also available.[4] Versions for the Wii Homebrew Channel[5] and Amazon Kindle[6] have also been developed.
History
[edit]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 initially prototyped 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.[7]
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.[8]
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
[edit]There are various SIP blocks that can accelerate video decoding computation in several formats, including PureVideo, UVD, QuickSync Video, TI Ducati and others. Hardware acceleration for MPlayer was implemented in the 2000s for several chipsets. However, newer forks such as mpv now provide more modern and active support for hardware decoding for MPlayer,[9] including for specific mobile device architectures.[10]
Capabilities and classification
[edit]MPlayer supports a broad range of media formats, leveraging FFmpeg libraries for decoding and playback. However, users seeking support for modern codecs and streaming protocols often use mpv, which builds upon MPlayer's foundation 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 x seconds), -sb (start at x bytes), -endpos (stop playing at x seconds), -novideo for only playing the audio track of a video, and -loop [number] for looping.[11]
Media formats
[edit]
MPlayer can play many formats, including:[12]
- 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
[edit]Interface and graphical front-ends
[edit]
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. MPlayer itself is a command-line based player, but various third-party front-ends have been developed over time. Active and popular front-ends include SMPlayer (Qt-based), while others such as Gnome-MPlayer and MPlayerX are no longer actively maintained.
Forks
[edit]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.[13] 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.[14][15] The developers also indicated intentions to enable MPlayer2 to use Libav as an alternative to ffmpeg.[16] The first release, 2.0, was published in March 2011. Mplayer2 development has ceased, and its goals have largely been continued by mpv, an actively developed fork.
mpv[17] is a GPLv2-licensed fork of mplayer2. Since June 2015, mpv has worked to relicense its code as LGPL v2.1 or above.[18]
MPlayer, MPlayer2 and mpv all use incompatible EDL formats.[19][20][21]
Legal controversy
[edit]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.[22] 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.[22]
Current status
[edit]As of 2025, MPlayer remains available as a legacy media player but is no longer under active feature development. Users seeking a more modern and actively maintained media player are generally encouraged to use mpv, a fork that continues the MPlayer2 development line with improved compatibility, hardware acceleration, and interface options.
See also
[edit]References
[edit]- ^ "MPlayer 1.5 released". 27 February 2022.
- ^ "MPlayer - The Movie Player". Retrieved 28 February 2022.
- ^ "MPlayer - the Movie Player".
- ^ "Index of /pub/micro/pc-stuff/freedos/files/util/user/mplayer". Ibiblio.org. Retrieved 2012-01-01.
- ^ Erant. "libdi and the DVDX installer". Hackmii.com. Retrieved 2012-01-01.
- ^ "kindlebrew". Gitorious. Archived from the original on 2012-04-07. Retrieved 2012-01-01.
- ^ History
- ^ "MPlayer - The Movie Player". Retrieved 2012-06-24.
- ^ Zhang H, et al. (2010). The design and implementation of an embedded high definition player. The 2nd International Conference on Computer and Automation Engineering (ICCAE). Vol. 4.
- ^ Chang, Hoseok; Lee, Youngjoon; Sung, Wonyong (October 2007). "Performance Optimization of a Multimedia Player on a Mobile CPU Platform". 2007 IEEE Workshop on Signal Processing Systems. IEEE. pp. 163–168. doi:10.1109/sips.2007.4387538. ISBN 978-1-4244-1221-1. S2CID 8023880.
- ^ MPlayer documentation and user manual
- ^ "MPlayer Features". Mplayerhq.hu. Retrieved 2012-01-01.
- ^ "Is MPlayer2 a viable fork of MPlayer?". Phoronix. 2011-03-24. Retrieved 2014-04-18.
- ^ "mplayer2 differences from mplayer". 2011. Archived from the original on May 4, 2012. Retrieved May 4, 2015.
- ^ "Did You Know there was a Fork of MPlayer?". ostatic.com. 2011-03-22. Archived from the original on 2012-01-11. Retrieved 2011-11-29.
- ^ "Libav going to be default provider for your codec experience (comment)". January 16, 2013.
- ^ "mpv.io". Retrieved 2015-01-28.
- ^ "Possible LGPL relicensing". GitHub. Retrieved 2016-09-27.
- ^ "3.7. Edit Decision Lists (EDL)". Archived from the original on 2015-07-17. Retrieved 21 Jul 2015.
- ^ "EDL: add support for new EDL file format". MPlayer2. Archived from the original on 25 April 2011. Alt URL
- ^ "EDL files". mpv. 25 Oct 2014. Retrieved 21 Jul 2015.
- ^ a b "MPlayer - The Movie Player". 2004-01-10. Retrieved 2012-06-24.
External links
[edit]MPlayer
View on GrokipediaOriginally developed in 2000 by Hungarian programmer Árpád Gereöffy (known as A'rpi) out of frustration with the limitations of existing Linux media players, it began as a simple MPEG-1/2 decoder called mpg12play before evolving into a comprehensive multimedia tool.[2]
Key early contributors included Aaron Holtzman and Michel Lespinasse, who helped expand its capabilities, leading to the first official MPlayer release (version 0.10) in January 2001, which unified support for MPEG and AVI files in a single binary.[2]
Over time, MPlayer has grown to include advanced features such as hardware-accelerated video decoding via VDPAU, on-screen display (OSD) for subtitles in multiple formats, and compatibility with modern codecs like HEVC, VP9, and Opus through integration with FFmpeg libraries.[1][3]
It runs on diverse operating systems including Linux, Windows, macOS, OS/2, and even embedded devices like the Wii, with both command-line and graphical user interface (GUI) options available.[1][3]
The project remains actively maintained under the GNU General Public License version 2, with its latest stable release (version 1.5) issued on February 27, 2022, incorporating updates from the FFmpeg 5.0 release and ongoing development in its SVN trunk.[1][4]
History and Development
Origins and Early Development
MPlayer was founded in September 2000 by Hungarian developer Árpád Gereöffy, known online as A'rpi in the demoscene community, as his first major open-source project beyond demoscene activities.[5] Gereöffy, who began programming at age 10 on the Commodore 64, sought to address the shortcomings of existing Linux media players, which struggled with audio-video synchronization, special file handling, and limited format support for tasks like playing VCDs.[6][5] Drawing from his involvement in the Hungarian open-source scene, he chose the GNU General Public License (GPL) to foster collaborative development and encourage contributions from a global community.[7] The initial release, MPlayer v0.1, emerged on September 22, 2000, as mpg12play, a video-capable extension built on libraries like libmpeg3 for MPEG-1/2 playback.[6] This was quickly followed by versions up to v0.95pre5 by early November, incorporating improvements such as the libmpeg2 codec for better performance.[6] In November 2000, Gereöffy merged the mpg12play codebase with his new simple AVI player, avip—which relied on avifile's Win32 DLL loader—resulting in MPlayer v0.3, a unified package supporting basic AVI playback alongside MPEG.[6] From the outset, MPlayer emphasized portability across Linux and Unix-like systems, prioritizing a lightweight, single-process design that integrated audio and video decoding to maintain synchronization.[6][5] By January 2001, with v0.10, the project combined MPEG and AVI support into a single binary, marking a foundational step toward broader media compatibility.[6] This early evolution laid the groundwork for rapid community involvement, though Gereöffy transitioned leadership to maintainers like Alex Beregszászi by 2003.[6]Key Milestones and Maintainers
In 2003, following Árpád Gereöffy's departure from the project to pursue the short-lived MPlayer G2 initiative, which was abandoned due to licensing concerns, Alex Beregszászi assumed maintenance responsibilities for MPlayer, having already served as code maintainer since version 0.90rc3 earlier that year.[8] This transition marked a shift toward more collaborative development, with Beregszászi supported by an expanding team of contributors.[8] The release of MPlayer 1.0pre1 on September 1, 2003, represented a significant milestone, introducing a stable integration of FFmpeg's libavcodec library that expanded support for a wide range of codecs, including proprietary formats, without relying on external binary libraries.[9] This integration, refined through subsequent updates between 2003 and 2005, allowed MPlayer to handle diverse media streams more efficiently by leveraging libavcodec's decoding capabilities directly within its build process.[10] Key releases during this period further advanced MPlayer's functionality. Version 1.0rc1, released on October 23, 2006, added native support for ASS/SSA subtitle formats via the libass library, enabling advanced rendering of styled and colored subtitles. MPlayer 1.1, issued on June 10, 2012, enhanced streaming capabilities, including improved RTSP protocol handling through FFmpeg integration and better support for DVB subtitles.[11] The series culminated in MPlayer 1.3 on February 16, 2016, which incorporated FFmpeg 3.0 for superior hardware decoding, such as VDPAU for HEVC and VDA acceleration on macOS, alongside fixes for codec compatibility.[11] Community involvement grew substantially under Beregszászi's leadership, with contributions coordinated via the project's Subversion (SVN) repository and IRC channel #mplayer-dev on Freenode, leading to expansions in skins, such as the default "Blue" theme, and comprehensive documentation updates in multiple languages.Current Development Status
MPlayer 1.4, codenamed "SubCounter," was released on April 18, 2019, with a primary emphasis on ensuring compatibility with FFmpeg 4.1 and the ongoing FFmpeg master branch, alongside various bug fixes to stabilize playback and codec handling. This release marked a continuation of efforts to align MPlayer with upstream multimedia libraries while addressing accumulated issues from prior versions. The final major release, MPlayer 1.5 "Hope," arrived on February 27, 2022, introducing compatibility with FFmpeg 5.0 and the FFmpeg master branch, and incorporating an updated FFmpeg snapshot for enhanced codec support. Key improvements included adjustments to deprecated features like ffmpeg12vpdau decoders, replaced by separate ffmpeg1vpdau and ffmpeg2vdpau options, to maintain functionality amid FFmpeg's evolution. Since 2022, MPlayer's development has shifted to maintenance mode, with activity confined to sporadic Subversion (SVN) commits primarily for security patches, bug fixes, and adaptations in Debian packaging—no new features have been introduced.[12] For instance, SVN revisions have advanced to at least r38680 by mid-2025, often tied to packaging updates like those in Debian Multimedia repositories, ensuring ongoing compatibility and vulnerability mitigations.[13] The official website at mplayerhq.hu and the Trac bug-tracking repository at trac.mplayerhq.hu continue to operate, though with infrequent updates beyond maintenance tickets.[1] The project's IRC channel persists on irc.libera.chat in #mplayer for community discussions.[14] For users seeking active development and modern enhancements, forks such as mpv are recommended, as MPlayer is increasingly regarded as legacy software suited for stable, lightweight playback needs in 2025.[1]Core Features and Capabilities
Playback and Processing Functions
MPlayer functions primarily as a command-line media player, enabling the reproduction of local media files by specifying the file path directly in the invocation.[15] It supports playback of DVD discs through thedvd://<title> syntax, utilizing libraries such as libdvdread for navigation and decryption via libdvdcss when needed.[3] Similarly, Video CDs (VCDs) are handled with the vcd://<track> syntax, accessing tracks in mode 1 or 2 form from the default CD-ROM device.[3] For network content, MPlayer streams media from protocols including HTTP, FTP, MMS, and RTSP/RTP by providing the appropriate URL, with options to save incoming streams during playback.[15]
A key aspect of MPlayer's processing is its ability to perform on-the-fly adjustments during playback, including format conversion, video scaling via filters like scale=width:height, deinterlacing with options such as pp=lb or yadif, and audio-video synchronization using parameters like -autosync or -mc to correct timing discrepancies.[3][15] These operations occur seamlessly without external dependencies, allowing real-time adaptation of media for optimal display on the target system.[3]
To facilitate automation, MPlayer includes a slave mode activated by the -slave option, which interprets commands from standard input for controlling playback, seeking, and other functions, making it suitable as a backend for scripting or integration into larger applications.[15] This mode supports external scripting for tasks like pausing, volume adjustment, or subtitle loading, as detailed in the slave protocol documentation.[3]
MPlayer offers versatile output options, rendering video to the screen through drivers such as X11 or OpenGL, dumping streams or processed output to files in formats like AVI with -dumpstream and -dumpfile, or directing content to external devices including TV-out configurations on supported hardware.[15][3] These capabilities enhance its utility in diverse environments, from desktop viewing to embedded systems.
Although effective for playback and basic filtering, MPlayer does not support advanced real-time editing like cutting or layering; instead, its companion tool MEncoder handles batch processing for encoding and conversion tasks, applying similar filters in multi-pass operations to produce output files without interactive editing features.[3][16] MEncoder leverages MPlayer's demuxing and decoding for efficient, non-real-time workflows such as resizing or format transcoding in bulk.[16]
Classification and Limitations
MPlayer is classified as a free and open-source media player software under the GNU General Public License, emphasizing its availability for modification and redistribution. Primarily developed for Linux, it supports cross-platform usage through ports to Windows, macOS, and legacy systems like DOS, enabling playback on diverse hardware environments.[17][18][19][20] One of its key strengths lies in high customizability, facilitated by configuration files such asmplayer.conf and input scripts that allow users to bind commands to keys or automate playback sequences. Additionally, MPlayer serves as a lightweight transcoder via its integrated MEncoder tool, which converts media files without requiring a full-featured encoding suite. These attributes make it particularly appealing for users seeking precise control over media handling.[15][3][21]
However, MPlayer has notable limitations, including the absence of native support for mobile operating systems, with no official builds for Android or iOS, restricting its use on contemporary handheld devices. It provides minimal built-in library management, lacking features like automated media scanning or tagging beyond basic playlists, and relies on external libraries such as FFmpeg for codec updates and format compatibility. In scope, it is not designed as a comprehensive media center, omitting support for protocols like DLNA for network streaming, which contrasts with more GUI-oriented players like VLC that cater to broader, less technical audiences. Instead, MPlayer excels in command-line-centric environments favored by advanced users.[1][1]
As of 2025, MPlayer's legacy status—stemming from its last stable release in 2022—limits seamless integration with new hardware ecosystems, such as modern GPUs or streaming devices, often necessitating forks like mpv for enhanced compatibility and ongoing development.[1]
Technical Implementation
Hardware Acceleration Methods
MPlayer utilizes several hardware acceleration methods to offload video decoding and rendering from the CPU to the GPU, improving playback efficiency for demanding formats. VDPAU, an API developed by NVIDIA and compatible with NVIDIA and AMD GPUs, has been supported in MPlayer since its integration into the mainline codebase around 2009. This method enables hardware decoding of H.264 and MPEG-2 video streams, substantially reducing CPU utilization by shifting decoding tasks to the GPU.[22][15] VA-API, an open-source interface primarily for Intel and AMD hardware, was integrated into MPlayer starting in 2007. It supports hardware decoding of VP8 and HEVC on compatible modern GPUs, allowing efficient processing of web-optimized and high-efficiency videos.[15] On macOS, MPlayer leverages VDA, integrated with the QuickTime framework, for hardware-accelerated decoding. For Windows platforms, DXVA through DirectX provides similar GPU offloading capabilities. Additionally, OpenGL serves as a method for hardware-accelerated output scaling and rendering.[1][15][23] These methods are configured using command-line options, such as-vo vdpau to enable VDPAU output or -vo vaapi for VA-API, with MPlayer automatically falling back to software-based rendering if the selected hardware acceleration is unavailable or incompatible.[15]
Limitations include that hardware acceleration for AV1 depends on compatible hardware and drivers via FFmpeg integration; AV1 hardware decoding is supported through VA-API and VDPAU as of FFmpeg 4.0 (2018). As of the 1.5 release (2022) with FFmpeg 5.0, HEVC hardware acceleration is fully supported via VDPAU and VA-API; ongoing trunk development incorporates later FFmpeg versions for improved performance.[1][24]
Supported Media Formats and Codecs
MPlayer supports a wide array of media containers, enabling playback of diverse video files through its integration with native demuxers and the FFmpeg library's libavformat. Commonly handled containers include AVI for general-purpose multimedia, MPEG variants such as VOB (DVD video objects), PS (program streams), and TS (transport streams) for broadcast and streaming content, Matroska (MKV) for high-quality containerization with chapters and multiple tracks, Ogg/OGM for open-source multimedia bundling, MP4 for modern web and mobile video, ASF/WMV for Microsoft formats, QuickTime (MOV) for Apple ecosystems, and RealMedia (RM) for legacy streaming. These are processed natively or via FFmpeg, allowing seamless demuxing without external dependencies for most cases.[3] For video codecs, MPlayer relies heavily on the libavcodec library from FFmpeg, providing decoding support for standards like H.264/AVC for high-efficiency compression in Blu-ray and streaming, MPEG-1/2/4 for foundational DVD and web video, DivX and Xvid (MPEG-4 ASP implementations) for popular encoded movies, VP6/8/9 from Adobe Flash for interactive media, Theora as an open royalty-free option, and WMV for Windows Media compatibility. AV1 decoding is supported via FFmpeg since approximately 2016 for software and 2018 for hardware acceleration on compatible GPUs. The full libavcodec suite covers hundreds of codecs, though patented ones like certain RealVideo or Sorenson variants require binary DLLs for full functionality, which are not included in standard builds to avoid licensing issues. Encoding is limited to non-patented options unless external libraries are linked.[25][3] Audio codecs are similarly broad, with native and libavcodec support for MP3 (MPEG Layer 3) as the ubiquitous compressed format, AAC for efficient multichannel audio in MP4 containers, Vorbis for Ogg-based open-source playback, AC-3 (Dolby Digital) for surround sound passthrough, WMA for Microsoft interoperability, and FLAC for lossless compression. MPlayer handles multi-track audio selection, allowing users to switch between language or commentary streams within containers like MKV or OGM during playback.[3] Subtitle formats are robustly supported for on-screen display, including ASS/SSA with advanced styling capabilities introduced in 2006 for animations and positioning, SRT for simple timed text, SUB (DVD subtitles), and VOBsub for image-based DVD overlays. Additional formats encompass MicroDVD, SubViewer, Sami, VPlayer, RT, PJS, MPsub, AQTitle, JACOsub, OGM embedded text, and closed captions (CC). Font rendering is customizable, supporting European ISO 8859-1/2, Cyrillic, and Korean character sets via FreeType integration.[26] Through periodic updates to its FFmpeg integration, MPlayer has incorporated decoding for emerging codecs like HEVC/H.265 since version 1.2 (2015), enabling efficient handling of 4K and high-dynamic-range content, though encoding remains unavailable without proprietary extensions. Proprietary formats may require plugins for niche support.[25][3]Plugins and Extensions
MPlayer incorporates a Win32 DLL loader to enable playback of media using proprietary binary codecs, such as those from RealPlayer, QuickTime, and Windows Media, on both Linux and Windows systems without requiring recompilation of MPlayer itself.[27] This loader supports Video for Windows (VfW) codecs via .dll or .drv files, Audio Compression Manager (ACM) codecs for audio, and DirectShow codecs identified by GUIDs, allowing MPlayer to interface with these external libraries for decoding formats not fully covered by open-source alternatives.[27] For instance, RealVideo and RealAudio streams can be handled by loading the corresponding RealPlayer binary codecs, which must be installed separately and placed in a designated directory.[3] Among legacy extensions, MPlayer on Windows can utilize DirectShow filters to access enhanced codec capabilities, such as advanced decoding through Microsoft's API, by specifying the codec's GUID and filename in the configuration.[27] Additionally, libmad provides high-quality fixed-point decoding for MP3 audio (MPEG layers 1-3), offering an alternative to the internal mp3lib for improved accuracy in audio playback.[25] These extensions were particularly valuable in earlier versions when open-source codec support was limited. Installation of these plugins typically involves compile-time configuration, such as enabling the Win32 DLL loader with the--enable-win32-dll option during MPlayer's build process, followed by placing the binary files in the codecs directory specified via --codecsdir.[15] Runtime selection is also possible, for example, using the -ac mad option to load libmad for MP3 decoding, allowing flexible codec choice without rebuilding the application.[15]
With the integration of FFmpeg's libavcodec, MPlayer has reduced reliance on these external binary plugins, as native open-source decoders now cover most formats previously requiring them.[1] However, binary codecs carry ongoing security risks due to their proprietary nature and lack of auditing, including historical vulnerabilities that could enable remote code execution, a concern that persists as of 2025.[28]
User Interfaces and Accessibility
Command-Line Interface
MPlayer's command-line interface (CLI) serves as its primary mode of operation, allowing users to invoke playback and configure settings directly from the terminal. The basic syntax follows the formmplayer [options] [file|URL|playlist|-], where options precede the media file, URL, or device path, enabling playback of local files, network streams, or optical media like DVDs and VCDs.[29] Configuration is managed through files, with a global system-wide file at /etc/mplayer/mplayer.conf and a user-specific one at ~/.mplayer/config, which store default options and can be overridden by command-line arguments.[29] File-specific configurations are also supported by placing an mplayer.conf file in the same directory as the media file when the -use-filedir-conf option is enabled.[29]
Key options provide fine-grained control over playback parameters. The -vo option selects the video output driver, such as xv for X11 or gl for OpenGL rendering, while -ao specifies the audio output, like alsa for ALSA or oss for OSS.[29] Seeking is handled by -ss <time>, which starts playback from a specified position in seconds (e.g., -ss 30 skips the first 30 seconds), and -speed <factor> adjusts the playback rate, ranging from 0.01 to 100 (e.g., -speed 1.5 for 1.5x speed).[29] These options can be combined for customized sessions, such as mplayer -vo xv -ao alsa -ss 60 -speed 2 video.avi.[29]
During playback, the CLI integrates interactive controls via keyboard shortcuts, enhancing usability for power users. Pressing the spacebar toggles pause and unpause, while arrow keys enable seeking: left/right arrows move backward/forward by 10 seconds, and up/down arrows adjust by 1 minute.[29] The on-screen display (OSD) is enabled by default and shows progress information, including time and percentage, with levels adjustable via -osdlevel (e.g., -osdlevel 2 adds a seek bar).[29] These shortcuts are defined in ~/.mplayer/input.conf, allowing customization of key bindings to MPlayer commands.[3]
Advanced scripting capabilities extend the CLI's programmability, particularly through slave mode activated by the -slave option, which reads commands from standard input (stdin) instead of keyboard events, facilitating external control via pipes or TCP sockets.[30] In this mode, commands like pause, seek 10 0 (seek forward 10 seconds), or volume 80 are sent line-by-line, often prefixed with pausing modifiers such as pausing_seek to halt playback during operations.[30] For example, echo "seek 30" | mplayer -slave -quiet video.avi seeks to 30 seconds upon launch, and for networked scripting, external tools such as netcat can be used to send commands over TCP to the slave mode's stdin.[30] A full list of supported commands is available via mplayer -input cmdlist.[30]
Customization options cater to diverse setups, including basic visual enhancements and hardware-specific profiles. Skin support adds a graphical overlay to the CLI output using -skin <name>, such as -skin default for a simple interface with menus and controls.[29] Profiles in the configuration file, denoted by sections like [profile.laptop], group options for different scenarios (e.g., lower resolution on mobile devices), invoked with -profile [laptop](/page/Laptop).[29] Graphical front-ends often wrap this CLI for easier access, passing options transparently to MPlayer.[29]
MPlayer's CLI and front-ends support accessibility features, including multi-format subtitle rendering for the hearing impaired, customizable OSD for visual feedback, and keyboard-driven controls compatible with screen readers on supported platforms. Subtitles can be loaded via command-line options like -sub <file> or integrated in front-ends with automatic downloading capabilities.[3]
Graphical Front-Ends and Tools
GMPlayer serves as the official graphical user interface for MPlayer, providing a skin-based frontend that enhances the command-line player's usability without altering its core functionality.[31] Built using GTK libraries (version 1.2.x or 2.0), it requires compilation with the--enable-gui flag and launches via the gmplayer binary.[31] The interface supports customizable skins installed in system-wide or user-specific directories, allowing users to select themes through command-line options, configuration files, or an in-app skin browser.[31] Key features include menu-driven navigation, playlist management for organizing media files, and seamless integration with MPlayer's existing configuration, enabling passthrough of hardware acceleration and codec options from the underlying binary.[31] While included in various Linux distributions' MPlayer packages, GMPlayer is considered an aging component, with limited updates tied to MPlayer's overall development cycle.[32]
SMPlayer offers a robust, cross-platform graphical frontend for MPlayer, utilizing Qt widgets to create an intuitive interface that invokes the MPlayer binary for playback.[33] It supports playback of virtually all video and audio formats through built-in codecs, remembering per-file settings such as playback position, audio tracks, subtitles, and volume for resumed sessions.[33] Notable features encompass advanced playlist management for sorting and queuing media, automatic subtitle downloading from opensubtitles.org, and integration for playing YouTube videos via an optional search plugin.[33] Users can configure hardware acceleration and other MPlayer options through SMPlayer's settings, ensuring compatibility with the core player's capabilities while adding layers of ease-of-use like skins and icon themes.[33] As an actively maintained project under the GPL license, SMPlayer received updates in 2025, including compatibility enhancements for modern systems on Windows, Linux, and macOS.[34]
Other third-party tools have extended MPlayer's accessibility within specific desktop environments, though many are no longer actively developed. KMPlayer functions as a KDE-integrated frontend for MPlayer, FFmpeg, and Phonon, supporting DVD/VCD playback from files, URLs, or devices, with embedding capabilities in Konqueror and KHTML browsers.[35] It includes recording via mencoder and streaming options using ffserver/ffmpeg, passing through MPlayer's hardware options for efficient media handling.[35] However, KMPlayer is unmaintained by the KDE community as of recent years.[35] Similarly, GNOME MPlayer provides a simple, clean interface tailored for the GNOME desktop, enabling playlist creation, multimedia organization, and support for audio, video, CDs, DVDs, VCDs, and streams through MPlayer's backend.[36] This tool, once archived on Google Code, remains unmaintained, with no updates beyond early 2010s distributions.[36] These frontends collectively inherit MPlayer's format and codec versatility, focusing on visual enhancements like subtitle handling and playlist tools to improve user accessibility.[37]
Forks and Successors
mplayer2
mplayer2 emerged as a fork of MPlayer in early 2011, primarily developed by Uoti Urpala following his exclusion from the original project in 2010 amid disagreements.[38][39] This fork was licensed under GPLv3, moving beyond MPlayer's GPLv2 to enable greater compatibility with modern libraries and address licensing constraints for integrating newer components.[40] It responded to the original MPlayer's slowing development pace in the late 2000s and early 2010s by focusing on streamlined builds and enhanced feature integration.[38] Key enhancements in mplayer2 included improved integration with libass for advanced subtitle rendering, supporting styled ASS/SSA formats with better font handling and Unicode compatibility.[41] It introduced asynchronous queueing mechanisms in its playback pipeline to reduce stuttering during high-bitrate streams, contributing to smoother video reproduction.[42] Additionally, Lua scripting hooks allowed users to extend functionality through custom scripts for input handling and playback control, marking an early adoption of embeddable scripting in the MPlayer lineage.[42] Development reached its peak with releases through 2013, during which mplayer2 incorporated updates from FFmpeg's master branch to support emerging codecs like H.264 and VP8 without relying on outdated internal decoders.[43] Active contributions tapered off by 2013–2014, as the project transitioned into maintenance mode, ultimately serving as an intermediary step toward more advanced derivatives.[39]mpv and Other Derivatives
mpv emerged as the primary active successor to MPlayer through its fork from mplayer2 in 2013, initiated by developer wm4 along with other contributors seeking to modernize the codebase.[43] This fork addressed limitations in the aging MPlayer architecture by prioritizing cleaner code, enhanced extensibility, and compatibility for embedding in other applications. To facilitate broader integration, mpv underwent a relicensing effort starting in 2015, transitioning much of its codebase from GPLv2+ to LGPLv2.1+ by obtaining contributor agreements, with the process largely completed by 2017.[44] As of 2025, mpv remains under vigorous development, with version 0.40.0 released on March 25, 2025, marking frequent updates focused on performance optimizations and new platform support.[45] Distinguishing itself from its mplayer2 predecessor, mpv introduced a simplified command-line interface (CLI) that streamlines options for easier use while retaining power-user flexibility through profiles and runtime commands.[46] It added native support for Lua and JavaScript scripting, enabling users to create custom extensions for on-screen controls, subtitle handling, and integration with tools like youtube-dl without external dependencies.[47] Hardware acceleration saw significant improvements, including full support for VA-API 2.0 for efficient video decoding on Intel, AMD, and NVIDIA hardware, reducing CPU load in high-resolution playback.[46] The video output (vo) system evolved into the gpu rendering chain, leveraging OpenGL, Vulkan, or Direct3D11 for scalable, shader-based processing that outperforms legacy MPlayer methods.[46] mpv's feature set emphasizes configurability and video fidelity, with dynamic runtime adjustments via key bindings or scripts that allow on-the-fly changes to playback parameters without restarting.[46] It incorporates high-quality scaling algorithms such as Lanczos, which balances sharpness and smoothness for upscaling, serving as the default for optimal performance on modern displays.[46] Advanced video processing is enhanced through integration with libplacebo, a library for GPU-accelerated rendering that handles HDR tone mapping, color management, and custom shaders, enabling precise control over output quality.[48] Beyond mpv, other derivatives of the MPlayer lineage include Baka MPlayer, a GUI-focused frontend built on libmpv for cross-platform playback with a minimalist interface, though development stalled around 2017 with no significant updates since.[49] Similarly, MPlayerX targeted macOS users with native Cocoa integration but was abandoned in the mid-2010s amid controversies over malware distribution via its official installer, which bundled potentially unwanted programs.[50] mpv has gained widespread adoption as the preferred alternative to the original MPlayer, powering Android ports like mpv-android for mobile video playback and serving as the backend for media centers such as Kodi through libmpv embeddings.[51] Its lightweight design and active maintenance make it the de facto standard for command-line media handling in Linux distributions and embedded systems.[52]Legal and Community Issues
GPL Compliance Disputes
In early 2004, MPlayer developers accused Kiss Technology of violating the GNU General Public License (GPL) by integrating portions of MPlayer's GPL-licensed code—specifically, subtitle parsing routines from files likesubreader.c and subreader.h, as well as libraries such as libmad and libjpeg—into the firmware of their KiSS DP-500 and DP-600 players without releasing the corresponding source code.[8] Evidence included identical strings for subtitle formats (e.g., MPSub, SAMI, RT) in KiSS firmware dumps, which matched MPlayer's implementation exactly, including MPlayer-specific formats unlikely to appear coincidentally.[53] Kiss provided a GPL.ZIP file with sources for the Linux kernel and BusyBox but omitted any MPlayer-related code, further fueling the accusations.[8]
Kiss Technology responded by accusing the MPlayer project of incorporating proprietary code from their DivX decoder into MPlayer without proper attribution or compliance with open-source licensing requirements.[54] This claim arose amid Kiss's development of early DivX-compatible DVD players, such as the DP-450 and DP-500 models, where they asserted that similarities in code functionality suggested leakage of their closed-source implementations into MPlayer's publicly available codebase.[8]
The dispute escalated publicly through online announcements and a January 10, 2004, interview on Danish National Radio, where MPlayer lead developer Árpád Gereöffy (Gabucino) described the similarities as evidence of code theft due to "laziness" in development, while Kiss managing director Peter Wilmar Christensen denied any use of MPlayer code, reiterated their proprietary nature, and questioned the GPL's legal enforceability as an untested license.[54] No formal lawsuit was filed by either party, and community pressure via forums, news sites, and developer statements led only to these public exchanges without mandated code releases or alterations.[53] Following the dispute, Kiss Technology was acquired by Cisco Systems in 2005.
This episode underscored broader tensions between open-source multimedia projects and commercial hardware vendors, amplifying scrutiny over the inclusion of binary-only codecs in GPL-compliant software like MPlayer, which often relied on proprietary decoders for formats such as DivX.[55] It contributed to a shift in the ecosystem, encouraging greater reliance on fully open-source alternatives like FFmpeg to mitigate proprietary entanglements and licensing risks in video playback tools.[56]