I have been a VLC user for years. It plays every format, works on every platform, and never asks me to install a codec pack. So when I tell you I switched to SMPlayer last March, the reason is not that VLC got worse. The reason is that SMPlayer got better, and a feature I did not know I wanted turned out to be the one I use every day. After six months of side-by-side testing, SMPlayer is now my default video player on Linux, and the only thing I still open VLC for is the rare DVD or Blu-ray rip that needs its built-in menu support.
SMPlayer is a frontend for MPlayer, libav, and mpv (three different media engines that handle the low-level work of decoding audio and video). It bundles the engines, picks the best one for your system, and gives you a Qt-based graphical interface on top. The project has been around for over a decade, but the modern version (since the 22.x release in 2023) is a complete rewrite. The default backend is now mpv, the keyboard shortcuts are more configurable, and the UI renders correctly on HiDPI displays. None of this was true in the 18.x and 20.x releases, which is why most Linux users stuck with VLC for so long.
What SMPlayer does differently
The single biggest difference is the default mpv backend. mpv is the gold standard for open-source video playback. It uses hardware video decoding by default on every modern GPU (a feature where the graphics card handles the video stream instead of the CPU, which is much faster and uses less battery), supports 10-bit color (a wider color range that produces smoother gradients in HDR content), and has the most accurate frame-pacing of any open-source player. SMPlayer inherits all of this, with a GUI.
VLC also uses hardware decoding on most systems, but it has historically been more conservative about enabling new formats. SMPlayer, because it inherits mpv’s defaults, enables hardware decoding for HEVC (H.265, the codec used by most 4K content), VP9 (the codec used by most YouTube videos), and AV1 (the codec used by Netflix and some YouTube content) out of the box. The difference shows up in two places: battery life on a laptop, and CPU temperature on a desktop. SMPlayer on a 4K HEVC file uses about 30% less CPU than VLC on the same file on my ThinkPad.
The second difference is the YouTube integration. SMPlayer can play YouTube URLs directly, without the ads, without the tracking, and without the browser’s JavaScript overhead. You paste a URL, SMPlayer fetches the video stream, and plays it. The integration is not as polished as a dedicated YouTube frontend (you cannot log in, you cannot see comments), but for the use case of “I want to watch this YouTube video in a player with proper fullscreen and proper audio control,” it is the cleanest option. VLC has a similar feature, but it is hidden under a separate menu and requires a Lua script to work.
The third difference is the preference system. SMPlayer stores every preference, including the keyboard shortcuts, in a single INI-style file at ~/.config/smplayer/smplayer.ini. You can edit the file directly, you can version-control it, and you can copy it to a new machine. VLC stores preferences in a similar location, but the keyboard shortcuts are not in the same file, and changing them through the GUI sometimes does not write back to the file. SMPlayer is more transparent.
What VLC still does better
I am not going to pretend SMPlayer is strictly better. VLC has a few areas where it is genuinely ahead.
DVD and Blu-ray menu support is the most obvious. SMPlayer does not support DVD or Blu-ray menus at all. If you have a disc image with menus (a full DVD rip, a Blu-ray with chapter selection), VLC plays the menus, and SMPlayer does not. There is a workaround: you can use MakeMKV to extract the main movie from the disc, but that is an extra step. For a serious home theater setup with a disc library, VLC is the only option of the two.
Streaming protocol support is the other area. VLC’s RTSP, RTMP, and HLS support is more mature. SMPlayer can play the same streams, but the URL handling is less forgiving (a typo in an RTSP URL fails silently in SMPlayer, with a useful error message in VLC). The difference matters if you are setting up a media server at home and want to stream to multiple devices. For a laptop playing local files, it does not matter.
The third area is the platform reach. VLC is on iOS and Android in the official app stores. SMPlayer is on Linux, Windows, and macOS, but not on iOS or Android. If you want a consistent player across your phone and your laptop, VLC is the only choice of the two.
The feature I did not know I wanted
The feature that converted me is the playback resume. SMPlayer remembers where you stopped in every video, and when you reopen the file, it asks if you want to resume. The state is saved per-file, not per-folder, and the data persists across reboots. You can disable it per-file (so you do not get the resume prompt for short clips), and you can scrub the resume point if the prompt puts you back in the middle of a scene.
I watch a lot of long-form content: 90-minute talks, two-hour films, four-hour documentary series. I rarely finish a video in one sitting. The resume feature means I never have to scrub forward to find where I left off, which is the single most annoying thing about watching long videos on a laptop. VLC has a resume feature, but it is not on by default, and it sometimes resumes a few seconds off from where you stopped. SMPlayer’s resume is exact, and it is on by default.
The second feature in the same category is the chapter-aware timeline. SMPlayer’s seek bar shows chapter markers (the named sections in a video, like chapters in a book) as small ticks, with the chapter name on hover. I use this when I am rewatching a video and want to jump to a specific scene. The chapter markers are populated automatically from the video’s metadata, and they work for any video that has them, not just DVDs.
The setup that took me 10 minutes
The default SMPlayer install is good. I made four changes.
I set the default video output to gpu-next, which is mpv’s modern video output that supports 10-bit color and HDR. The default is gpu, which is older and less accurate. The change is in Preferences > Video > Output driver.
I enabled the YouTube integration by going to Preferences > Network and adding youtube-dl to the list of streaming sites. youtube-dl is a command-line tool that fetches video URLs from a wide range of sites; SMPlayer uses it under the hood when you paste a streaming URL.
Skip-back-and-forward keys get bound to Ctrl+Left and Ctrl+Right to skip back and forward by 60 seconds. The default bindings are 10 seconds, which is too short for my use case. The binding change is in Preferences > Keyboard and mouse.
Subtitle font gets set to Noto Sans, which is the font that ships with most Linux distributions and renders correctly on every display. The default font is a generic sans-serif that varies by system.
The whole setup took 10 minutes, including a restart of the application. None of it required editing a config file by hand, but I could have done it that way if I wanted to.
Trade-offs
SMPlayer is heavier than VLC. On idle, it uses about 80 MB of RAM, compared to 50 MB for VLC. The difference does not matter on a desktop, but on a laptop with 8 GB of RAM, the cumulative effect of running SMPlayer, a browser, and an IDE is noticeable. VLC is the leaner choice if you are tight on memory.
The mpv backend is a double-edged sword. mpv is more accurate than VLC’s internal decoder, but it is also more aggressive about using the latest GPU features. On an older laptop with a GPU that is more than five years old, SMPlayer can fail to initialize the hardware decoder and silently fall back to software decoding. The result is the video plays, but the CPU is at 100% and the battery dies in an hour. VLC is more conservative and will use the hardware decoder on a wider range of older GPUs.
SMPlayer is a one-maintainer project. The lead developer, Ricardo Villalba, has been maintaining it for over a decade, and the project is healthy, but it is not a community project in the way VLC is. If the lead maintainer steps back, the project could stall. The risk is low for the next few years, but it is not zero.
The YouTube integration is a moving target. YouTube changes its streaming protocol every few months, and the third-party tool SMPlayer uses to fetch URLs has to update in lockstep. About once a year, YouTube integration breaks for a few days while the upstream tool catches up. The same is true for VLC’s integration, so this is not a SMPlayer-specific problem, but it is a problem to be aware of.
What I would tell past me
If I could send a message back to the version of me that was deciding between SMPlayer and VLC, I would say four things.
- Install both. The setup cost is 10 minutes, and you can switch by changing the default app for video files in your file manager. Use VLC for discs and streaming, use SMPlayer for everything else.
- Turn on the resume feature. It is on by default, but I know someone who turned it off because the prompt annoyed them, and they immediately lost the use case. The prompt is the feature.
- Bind the skip keys to 60 seconds. 10 seconds is too short for long content, 5 minutes is too long.
- Use
gpu-nextas the video output. The difference is small on SDR content, large on HDR content, and the GPU on your machine is almost certainly capable of it.
Bottom line
SMPlayer is the right default video player for Linux in 2026. The mpv backend, the YouTube integration, the playback resume, and the chapter-aware timeline are the four features that put it ahead of VLC for me. VLC is still the right pick for discs, for streaming servers, and for the rare case where you need a player on a phone.
If you are using VLC and you are happy, there is no urgent reason to switch. The differences are real, but they are not the kind of differences that justify reinstalling your media player on a Saturday afternoon. If you are setting up a new Linux install, or if you have a specific frustration with VLC that I have not covered (the most common one is the lack of an exact playback resume), give SMPlayer a try. The setup is 10 minutes, and the package is in every distribution’s repository.