SMPlayer
SMPlayer is a free and open-source media player that serves as a graphical front-end for the MPlayer and mpv multimedia backends, enabling playback of virtually all audio and video formats without requiring external codecs.[1] Developed by Ricardo Villalba and initially released in 2006, it is cross-platform software available for Windows, Linux, and macOS, with support for over 30 languages.[2][3] One of SMPlayer's defining features is its ability to remember media settings, such as playback position, audio tracks, and subtitles, allowing users to resume sessions seamlessly across files or devices.[4] It includes built-in support for YouTube video playback, automatic searching and downloading of subtitles from sources like OpenSubtitles.org, and customizable options like video and audio filters, playback speed adjustments, and skin themes.[1] Additionally, SMPlayer generates thumbnails for video files and handles advanced formats including AVI, MP4, MKV, MPEG, MOV, WMV, MP3, WAV, AAC, AC3, M4A, and WMA.[4] Licensed under the GNU General Public License (GPL), SMPlayer emphasizes user convenience by bundling necessary codecs and avoiding dependencies on third-party installations, making it suitable for both novice and advanced users seeking a lightweight yet powerful alternative to proprietary media players.[1] As of June 2025, the latest stable version is 25.6.0, which incorporates updates to Qt 5.15 for improved interface performance and compatibility.[2] Its development continues through community contributions on platforms like GitHub and SourceForge, focusing on enhancing streaming protocols, touch-screen support for 2-in-1 devices, and integration with modern multimedia standards.[5][6]History and Development
Origins and Initial Release
SMPlayer was developed by Ricardo Villalba, a Spanish programmer, as a cross-platform graphical user interface (GUI) for the command-line media player MPlayer.[7][8] Villalba initiated the project to create an accessible frontend that would make MPlayer's powerful playback capabilities available to users without requiring familiarity with terminal commands.[2] The core motivation behind SMPlayer's creation stemmed from MPlayer's limitations as a text-based tool, which, despite its robustness in handling diverse audio and video formats, lacked an intuitive native GUI and made tasks like subtitle management cumbersome for non-technical users.[8][2] By leveraging the Qt framework, Villalba designed SMPlayer to support both Linux and Windows from the outset, aiming to streamline media playback while preserving MPlayer's backend efficiency.[7] SMPlayer's initial release took place on December 11, 2006, marking the debut of version 0.6.x and introducing basic features such as simplified video loading, playback controls, and preliminary subtitle support.[9] This launch addressed the growing need for a free, open-source media player that bridged the gap between MPlayer's technical prowess and everyday usability on desktop environments.[6]Evolution and Key Milestones
From its early versions, the player incorporated built-in codec bundling for Windows installations, eliminating the need for external codec packs and enabling seamless playback of various formats without additional downloads.[10] This technical evolution addressed common compatibility issues on Windows, leveraging MPlayer's internal codec support to ensure broad format compatibility right from the outset.[6] A significant milestone came in 2008 with the addition of EDL (Edit Decision List) support in version 0.6.0, allowing users to automatically skip specific segments in videos by placing an .edl file with the same name as the media file.[11] This feature enhanced viewing experiences for edited content, such as skipping commercials or intros, and integrated directly with MPlayer's capabilities.[12] Concurrently, version 0.7.0 introduced initial YouTube support, enabling direct playback of videos via URL input, marking SMPlayer's entry into streaming media handling.[13] In 2014, version 14.9.0 represented a pivotal technical shift by adding support for the mpv backend as an alternative to MPlayer, offering improved performance and modern features like better hardware acceleration.[14] This update allowed users to select mpv in preferences, facilitating a smoother transition for those seeking enhanced video rendering and subtitle handling.[15] By 2015, further refinements in version 15.9 strengthened mpv integration, including bundled mpv binaries in Windows installers for easier setup.[13] Chromecast integration arrived experimentally in version 17.1 in January 2017, permitting users to stream local files and YouTube videos to Chromecast devices via a web interface, requiring Google Chrome and the webfs package.[16] This expansion broadened SMPlayer's utility for multi-device playback environments. In 2018, version 18.10 advanced YouTube capabilities by supporting resolutions up to 4K, with subsequent version 19.1 in 2019 enabling 60fps playback for high-quality streaming.[13][17] SMPlayer has maintained a pattern of stable, incremental releases, with regular updates addressing compatibility and usability. The latest version, 25.6.0 released on June 8, 2025, focused on bug fixes such as play/pause functionality, screensaver inhibition on Linux, and disc playback stability, alongside general improvements to ensure ongoing reliability.[18]Current Development Status
SMPlayer is currently maintained by Ricardo Villalba, who oversees development and accepts contributions through the project's GitHub repository at smplayer-dev/smplayer.[5] The software remains actively developed as an open-source project under the GNU General Public License version 2.0 (GPLv2), with its source code hosted on both GitHub and SourceForge, facilitating community access and collaboration.[7][6][5] The project follows a stable release cadence of approximately two major versions per year, emphasizing incremental improvements over radical changes. The most recent stable release, version 25.6.0, was issued on June 8, 2025, and primarily addressed bug fixes to enhance compatibility with the mpv backend, including corrections to the play/pause button functionality, screensaver inhibition on Linux, and disc playback issues. This update, like its predecessors such as 24.5.0 in May 2024, focuses on resolving platform-specific glitches and bolstering overall reliability across Windows, Linux, and macOS.[19] Community involvement is evident through ongoing issue tracking and discussions on GitHub, where users report and resolve bugs related to cross-platform performance, such as audio/video synchronization and subtitle handling.[20] Development priorities center on sustaining compatibility with evolving dependencies like mpv—following an earlier transition from MPlayer—while prioritizing bug fixes and minor enhancements to ensure long-term stability without introducing sweeping new features.[19]Features
Core Playback Functionality
SMPlayer primarily utilizes MPlayer as its backend engine for media decoding, enabling the playback of virtually all audio and video formats without requiring external codecs.[7] Additionally, it supports mpv as an alternative backend, providing enhanced performance and compatibility for modern hardware acceleration.[7] The player offers robust playback controls, including the ability to remember the exact position within files or chapters upon resumption, allowing seamless continuation from previous sessions.[7] Variable speed playback is supported, which facilitates accelerated viewing or slowed analysis without altering pitch.[21] Audio and video equalizers are integrated, enabling users to adjust frequency responses and visual properties like contrast and brightness during playback.[7] Filters such as deinterlacing (e.g., Yadif algorithm) are available to improve video quality for interlaced sources, alongside other audio and video processing options.[22] SMPlayer provides built-in support for common container formats including AVI, MKV, and MP4, as well as audio formats like FLAC.[10] It handles streaming protocols such as HTTP and RTSP natively through its backend engines, supporting live and on-demand media delivery.[10] Subtitle integration is handled during playback for synchronized text display.[7]Subtitle and Multimedia Support
SMPlayer provides robust subtitle handling, enabling users to automatically search and download subtitles from OpenSubtitles.org directly within the player. To access this feature, users open a video file and navigate to the Subtitles menu, where they select "Find subtitles on opensubtitles.org"; a list of available subtitles in various languages appears, allowing selection and immediate download for seamless integration.[21][23] Customization options for subtitles include adjustments to font type, size, color, and position, particularly when using SSA/ASS subtitle formats, which can be enabled in the Subtitles menu for enhanced styling control. The player supports multi-language subtitles by prioritizing frequently used languages in search results and allowing users to select from multiple tracks embedded in the media or downloaded files.[24][25][21] For audio enhancements, SMPlayer allows selection of multiple audio tracks from media files via the Audio menu, facilitating switches between languages or formats during playback. It includes a built-in audio equalizer with presets tailored for different music genres, such as rock or classical, which users can apply or customize to adjust frequency bands. Additionally, volume normalization is available as a filter option in the Audio menu, helping to balance dynamic range and prevent clipping by automatically adjusting audio levels.[21][26][27] SMPlayer integrates online multimedia capabilities, supporting YouTube video playback up to 4K resolution and 60fps when configured with the mpv engine and youtube-dl or yt-dlp tool via the Network preferences (as of version 25.6.0).[23][28] Users can browse and play internet radio stations through the dedicated Radio menu, which lists streams for direct access, while TV support is available on Linux systems for compatible capture devices. Chromecast integration enables casting of local or online media to compatible devices by selecting "Play on Chromecast" from the Play menu, which launches a web-based control interface.[23][29][30][21]User Interface and Customization
SMPlayer employs a graphical user interface (GUI) built using Qt widgets, ensuring cross-platform consistency across Windows, Linux, and other supported systems. This framework provides a familiar desktop experience with standard controls such as buttons, menus, sliders, and dialogs, all integrated with the underlying MPlayer or MPV playback engine. The interface emphasizes ease of use, featuring a main video window, a control bar for playback navigation, and contextual menus for quick access to options like subtitles and audio tracks.[31][32] The player supports extensive customization through its skinnable interface, allowing users to alter the visual appearance via themes and skins. In the Preferences dialog under the Interface tab, users can select the "Skinnable GUI" option and choose from bundled skins or install additional ones, such as the H2O or Faenza themes, which modify colors, icons, and layout elements like the toolbar and playlist panel. Icon themes can also be swapped independently to match system aesthetics, with Linux distributions often providing the smplayer-skins package for expanded options. Furthermore, the playlist manager is fully customizable; users can add files or directories via drag-and-drop or the "+" button in the dedicated playlist sidebar, rearrange items, save/load playlists as .m3u files, and enable automatic addition of opened media to the queue.[23][33][34] Key interaction elements are configurable through the Preferences > Keyboard and Mouse section, where hotkeys can be remapped for actions like play/pause, seek, volume adjustment, and subtitle toggling—default shortcuts include spacebar for pause and arrow keys for seeking. Global multimedia keys (e.g., for next/previous track) can be enabled as system-wide shortcuts, provided they do not conflict with other applications. The on-screen display (OSD) is also user-tunable via the View > OSD menu, offering modes such as "Subtitles only," "Volume + Seek," or full display, with the 'o' key cycling through options to show/hide elements like timecodes, progress bars, and volume indicators during playback.[35][36][37] For accessibility, SMPlayer supports over 30 languages, including Spanish, German, French, Italian, Russian, Chinese, and Japanese, selectable in Preferences > General to accommodate diverse users. Additionally, it provides automatic support for Edit Decision List (EDL) files, which enable custom edit lists to skip or mute unwanted segments like commercials or intros; users place an .edl file with the same name as the video in the same directory, and SMPlayer loads it seamlessly to apply the cuts during playback.[7][12][38]Platforms and Distribution
Linux and Unix-like Systems
SMPlayer is widely available in the official repositories of major Linux distributions and BSD variants, facilitating easy integration into Unix-like environments. On Ubuntu, users can access the latest versions through the dedicated Personal Package Archive (PPA) maintained by the developers, which provides up-to-date builds beyond the standard repositories. For Debian, the application is included in the main package repository, ensuring seamless installation on stable releases. Fedora distributes SMPlayer via the RPM Fusion free repository, which hosts multimedia software not included in the base Fedora packages due to licensing considerations.[39] In the BSD ecosystem, FreeBSD offers SMPlayer through its ports collection under the multimedia category, allowing compilation or binary installation tailored to the system's architecture.[40] OpenBSD similarly provides it via ports in the x11 category, emphasizing security-focused builds for its environment.[41] Installation on Linux typically leverages distribution-specific package managers for simplicity and dependency resolution. For Debian-based systems like Ubuntu and Debian, the APT tool is used; after adding the PPA for Ubuntu if needed, the commandsudo apt update && sudo apt install smplayer retrieves and installs the package along with essential components such as themes and skins.[42] On Fedora, after enabling the RPM Fusion repositories with sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm (and the nonfree equivalent if required), users run sudo dnf install smplayer to deploy it via DNF, Fedora's successor to YUM.[43] For BSD systems, FreeBSD users employ pkg install smplayer for pre-built packages or cd /usr/ports/[multimedia](/page/Multimedia)/smplayer && make install clean for port-based builds, while OpenBSD follows a similar ports workflow with pkg_add smplayer or manual compilation.[40][41]
For users preferring custom builds, source compilation is supported on Linux and Unix-like systems by downloading the tarball or cloning the GitHub repository. The process requires installing development dependencies such as Qt5 or Qt6 libraries (e.g., libqt5-dev on Debian-based systems or qt5-qtbase-devel on Fedora), along with build tools like qmake and make; MPlayer or mpv must also be present for playback functionality, though they are not compiled into SMPlayer itself. Compilation proceeds with qmake to generate Makefiles, followed by make and optionally make install to deploy the binary, typically to /usr/local unless a custom prefix is specified.[15] This method allows adaptations for specific environments but demands familiarity with the system's build toolchain.
SMPlayer includes Unix-specific adaptations to ensure compatibility with display servers and multimedia backends prevalent in Linux and BSD. It natively supports X11, the traditional windowing system, for rendering its Qt-based graphical interface and video output. Experimental integration with Wayland is available, enabling direct compositing without X11 intermediaries, though users may encounter playback issues resolvable by environment variables like QT_QPA_PLATFORM=xcb or unsetting WAYLAND_DISPLAY for fallback to XWayland.[44] Core dependencies encompass Qt5 or Qt6 for the user interface framework, providing cross-desktop consistency, and the mpv library (or legacy MPlayer) as the multimedia engine, which handles decoding and rendering while leveraging system codecs for broad format support.[15] These elements allow SMPlayer to function efficiently in resource-constrained Unix-like setups, such as servers or lightweight desktops.
Windows Packages
SMPlayer provides comprehensive support for Windows operating systems, ensuring compatibility across modern installations. As of version 25.6.0, the official distribution includes a 64-bit installer targeting Windows 8 and later versions. Earlier versions provided 32-bit support for Windows XP and other legacy systems.[45] These installers are available directly from the project's official website as well as SourceForge, allowing users to download and set up the application with minimal configuration.[6][3] A key feature of the Windows packages is the inclusion of essential bundled components to eliminate the need for external dependencies. The installers incorporate executables for both MPlayer and mpv as multimedia engines, along with built-in codecs that enable playback of virtually all video and audio formats without requiring additional software like K-Lite or external codec packs.[46][10] This self-contained approach simplifies deployment, particularly for users on restricted systems or those preferring a streamlined installation process. During setup, users can select their preferred engine (MPlayer or mpv) and optional features such as icon themes and language packs, further customizing the package to their needs.[46] In addition to traditional installers, SMPlayer offers a portable version optimized for Windows, which can be run directly from USB drives or other removable media without any installation required. This edition is distributed through PortableApps.com, providing a launcher-wrapped package that maintains all functionality while preserving user settings across devices. Available in a 64-bit variant, the portable release mirrors the bundled elements of the standard installer. Earlier versions offered 32-bit support.[47][48]macOS and Portable Versions
SMPlayer provides official support for macOS, introduced in version 21.8.0, with downloadable DMG packages available from the project's GitHub releases.[19] The latest version, 25.6.0, targets macOS 10.15 (Catalina) and later, with earlier versions providing compatibility down to macOS 10.14 (Mojave).[49][19] As the application is not digitally signed, macOS security features may display warnings; users can proceed by right-clicking the app and selecting "Open," or install it via Homebrew with the commandbrew install --cask --no-quarantine smplayer.[49] Built on the Qt framework, SMPlayer delivers consistent functionality across macOS versions, aligning with its cross-platform design.[5]
Portable versions of SMPlayer emphasize standalone deployment without requiring system installation or registry modifications, facilitating use on multiple machines via external storage. For Windows, official portable builds are distributed as 7z archives for 64-bit architectures; extraction allows direct execution of smplayer.exe from any directory, with user configurations saved locally in a "config" subfolder since version 24.5.[48][19] This edition is also packaged for the PortableApps.com platform, enabling seamless integration with portable application launchers.[47]
On Linux and Unix-like systems, portability is supported through the AppImage format, added in version 21.8.0, as well as Snap and Flatpak packages, which bundle all dependencies into a single executable file runnable on most distributions after setting execute permissions—no installation or root access needed.[50][19] For macOS, the DMG package yields a self-contained application bundle that operates independently once extracted, allowing placement and execution from removable media while maintaining full feature parity with installed versions.[49] These options leverage Qt's cross-platform capabilities to ensure uniform behavior across supported operating systems.[5]