IINA
Modern media player for macOS built with Swift
Quick Take: IINA
IINA is the best video player on macOS. It combines mpv's unmatched codec support with a native interface that respects macOS design conventions. Picture-in-Picture, subtitle management, streaming URL playback, and hardware-accelerated decoding on Apple Silicon make it functionally complete. The only reason to keep VLC around is for the rare edge case where VLC's older, more battle-tested parser handles a corrupt file that mpv rejects. For everything else, IINA is the answer.
Best For
- •Mac Users Who Watch Video Files Regularly
- •Developers Following Video Tutorials
- •Anyone Replacing VLC with a Native Alternative
What is IINA?
IINA is the video player that macOS should have shipped with. Built from scratch in Swift by developer lhc70000, it wraps the battle-tested mpv playback engine inside a native macOS interface that actually looks like it belongs on your Mac. No clunky cross-platform UI. No settings panels from 2008. Just a clean, dark-mode-aware player that supports every video format you'll ever encounter—MKV, MP4, HEVC, AV1, WebM, FLV, the works—without installing codec packs. VLC has been the default 'plays anything' video player for two decades, and it still works fine. But on macOS, VLC looks and feels like a Linux app wearing a Mac skin. The toolbar icons are fuzzy on Retina displays, the preferences window is a maze of 400 options, and the native macOS integration (Dark Mode, Touch Bar, Picture-in-Picture) is either missing or half-baked. IINA fixes all of that. It uses AppKit and SwiftUI for the interface, respects the macOS design language, supports the system-wide Dark Mode toggle, integrates with the Touch Bar on older MacBook Pros, and implements native Picture-in-Picture via Apple's AVKit framework. Under the hood, IINA uses mpv—the same engine that powers professional media players and video analysis tools—for actual playback. This means hardware-decoded HEVC and AV1 on Apple Silicon, smooth 4K60 playback without fans spinning up, and support for HDR content on compatible displays. IINA also handles subtitle loading (local files, online search via OpenSubtitles), playlist management, streaming URLs (paste a YouTube link and it plays), browser extensions that let you send videos from Safari or Chrome directly to IINA, and a plugin system for extending functionality. For anyone on macOS who watches video files—tutorials, movies, screen recordings, conference talks—IINA is the obvious choice.
Install with Homebrew
brew install --cask iinaDeep Dive: Why IINA Replaced VLC for macOS Users
How a Swift developer built the video player Apple never shipped, and why mpv under a native shell was the right architecture.
History & Background
IINA started in 2017 when developer lhc70000 got frustrated with VLC's non-native interface on macOS. Rather than building a player from scratch—which would mean years of codec development—they wrapped mpv's proven playback engine inside a native Swift/AppKit shell. This architecture decision was brilliant: mpv handles the hard part (decoding every format under the sun) while IINA handles the part users actually see (the interface). The project hit GitHub and immediately resonated with the Mac community, accumulating thousands of stars within months.
How It Works
IINA communicates with mpv through its C API (libmpv), sending playback commands and receiving frame data for rendering. The UI layer is pure Swift/AppKit, with the video output rendered through mpv's GPU context shared with the macOS window. This means IINA gets mpv's playback quality—frame-perfect seeking, correct color management, subtitle rendering—while the window chrome, controls, and settings panels are all native macOS views. The architecture also means IINA can use mpv's extensive configuration system; advanced users can pass mpv options through IINA's preferences for fine-grained control.
Ecosystem & Integrations
IINA's ecosystem includes browser extensions for Safari and Chrome, mpv configuration passthrough for power users, and integration with yt-dlp for streaming. The macOS media key integration means IINA plays nicely with other apps—pressing play/pause on your keyboard targets whichever media app was most recently active. IINA also registers itself as a handler for video file types, so double-clicking an MKV in Finder opens it directly.
Future Development
IINA's development is community-driven with periodic releases. IINA 1.4 introduced a plugin system enabling community extensions for added functionality. Recent focus has been on compatibility with new macOS versions, improving HDR rendering on the latest displays, and updating the mpv engine to support newer codecs like AV1 with hardware acceleration. The plugin system allows third-party developers to extend IINA without modifying core code, opening possibilities for custom integrations while keeping the main application focused on reliable video playback.
Key Features
Native macOS Interface
IINA's interface is built with Swift and AppKit, not a cross-platform toolkit. Windows have proper traffic light buttons, the settings panel uses standard macOS layout conventions, and the on-screen controller follows Apple's translucent material design. It supports system-wide Dark Mode, responds to Appearance changes in System Settings, and renders crisply on Retina and ProMotion displays. It looks like an Apple-made app.
mpv Playback Engine
All actual video decoding and rendering is handled by mpv, the fork of MPlayer/MPlayer2 that's become the standard for high-performance video playback on Unix systems. This gives IINA support for virtually every container and codec in existence—H.264, H.265/HEVC, AV1, VP9, FLAC, DTS, Opus—with hardware acceleration on Apple Silicon via VideoToolbox. You get mpv's reliability without having to configure it from the command line. IINA also includes a modern plugin system that lets the community extend functionality without modifying core code.
Picture-in-Picture
IINA supports macOS native Picture-in-Picture through Apple's AVKit APIs. Click the PiP button and the video floats in a corner of your screen while you work in other apps. Unlike VLC's crude 'always on top' workaround, IINA's PiP works correctly with Mission Control, respects display corners, and lets you resize the floating window—the same behavior you get with Safari's PiP for web videos.
Subtitle Management
IINA loads subtitles from local .srt/.ass/.vtt files automatically if they share the video filename. It also integrates with OpenSubtitles for online subtitle search—right-click the video, search by filename or hash, download, and apply without leaving the player. Subtitle timing, font, size, color, and position are all configurable. For .ass subtitles with styled formatting (common in anime), IINA renders them correctly with proper positioning and effects.
Stream URL Playback
Paste a YouTube, Twitch, or direct media URL into IINA's 'Open URL' dialog and it plays the stream directly using yt-dlp (if installed) or mpv's built-in protocol handlers. This means you can watch YouTube videos without a browser, skip ads (via yt-dlp), and choose the quality level. Browser extensions for Safari and Chrome let you right-click a video on any webpage and send it to IINA with one click.
Touch Bar and Media Key Support
On MacBook Pros with Touch Bar (2016-2021 models), IINA shows playback controls, a scrubber timeline, and volume directly on the Touch Bar. On all Macs, IINA correctly captures media keys (play/pause, forward, back) so your keyboard's media controls work as expected. It also supports Apple Remote for users with the aluminum remote control.
Who Should Use IINA?
1The Developer Watching Tutorials
A developer downloads conference talks and coding tutorials as MP4 files. They watch them in IINA with Picture-in-Picture enabled, keeping the video floating in the corner while they follow along in their code editor. The keyboard shortcut for speed control (bracket keys for 0.5x to 2x) lets them skip slow introductions and slow down complex explanations without reaching for the mouse.
2The Movie Collector
A film enthusiast has a library of MKV files with HEVC encoding, embedded subtitles in multiple languages, and DTS audio. IINA opens every file without codec errors, lets them switch between subtitle tracks with a click, and plays HDR content correctly on their Studio Display. VLC occasionally shows artifacts with 10-bit HEVC files; IINA handles them cleanly because mpv's VideoToolbox integration on Apple Silicon is rock-solid.
3The Distraction-Free YouTube Viewer
A graduate student uses the IINA browser extension to send YouTube lectures directly to IINA, bypassing the browser's recommendation sidebar and autoplay. They get a clean video window with no ads (via yt-dlp), no distracting thumbnails, and no temptation to click on the next suggested video. Playback controls, subtitle downloads, and speed adjustments are all within IINA's interface.
How to Install IINA on Mac
IINA installs via Homebrew Cask or direct download from the official website. Both deliver the same application.
Install via Homebrew
Run `brew install --cask iina` in your terminal. This downloads and installs IINA to your Applications folder.
Set as Default Player
Right-click any video file in Finder, select 'Get Info', under 'Open With' choose IINA, then click 'Change All'. Now all video files of that type open in IINA by default.
Install yt-dlp (Optional)
For YouTube and streaming URL support, install yt-dlp: `brew install yt-dlp`. IINA detects it automatically and uses it for URL playback.
Install Browser Extension (Optional)
Download the IINA browser extension for Safari or Chrome from IINA's website. This adds a 'Play in IINA' option when you right-click videos on web pages.
Pro Tips
- • Associate all video file types with IINA at once by using the 'Change All' button in Finder's Get Info panel for each major type (MKV, MP4, AVI).
- • Enable 'Hardware Decoding' in IINA preferences for the best performance on Apple Silicon Macs.
- • Check IINA's GitHub releases page for beta versions with the latest features.
Configuration Tips
Enable Hardware Decoding
Go to IINA Preferences > Video > Hardware Decoding and select 'auto' or 'videotoolbox'. This offloads H.264, HEVC, and VP9 decoding to Apple Silicon's dedicated media engine, reducing CPU usage from 40-60% down to 5-10% during 4K playback. Battery life improves noticeably on laptops.
Configure Subtitle Appearance
In Preferences > Subtitle, set a clean sans-serif font (SF Pro or Helvetica Neue), increase the size to 42-48pt for comfortable reading on Retina displays, and add a slight shadow or outline for readability over bright scenes. These settings apply to .srt files; .ass files retain their built-in styling.
Alternatives to IINA
IINA is the top recommendation for macOS video playback, but alternatives exist for specific needs.
VLC
VLC is the universal media player—it runs on every platform and plays anything. On macOS, it works reliably but the interface hasn't kept up with modern macOS design. VLC is the better choice if you need the same player on Mac, Windows, Linux, and mobile. IINA is better if macOS is your primary platform and you want a native experience.
HandBrake
HandBrake is a video transcoder, not a player. Use HandBrake to convert video files between formats (e.g., MKV to MP4, or re-encode for smaller file sizes). Use IINA to actually watch videos. They complement each other: HandBrake prepares files, IINA plays them.
QuickTime Player
Apple's built-in player handles H.264 MP4 files well and supports screen recording. But it can't play MKV, doesn't support most subtitle formats, and chokes on HEVC files without the right codecs. IINA replaces QuickTime for actual video watching while QuickTime remains useful for its screen recording feature.
Pricing
IINA is completely free and open-source under the GPLv3 License. There are no paid features, no ads, no premium tiers, and no telemetry. Development is funded through community contributions and the developer's own time. The entire source code is available on GitHub.
Pros
- ✓True native macOS interface—looks like an Apple app
- ✓Plays every video format via mpv engine (MKV, HEVC, AV1, VP9, etc.)
- ✓Native Picture-in-Picture through Apple's AVKit
- ✓Hardware-accelerated decoding on Apple Silicon via VideoToolbox
- ✓Integrated subtitle search and download
- ✓Stream URL playback with yt-dlp support
- ✓Dark Mode, Touch Bar, and media key integration
- ✓Free and open-source (GPLv3)
Cons
- ✗Development pace is slower than VLC (smaller team)
- ✗No built-in audio equalizer (mpv filters work but aren't GUI-exposed)
- ✗Streaming URL support depends on yt-dlp being installed separately
- ✗No iOS or iPadOS companion app
- ✗Less battle-tested with obscure codec edge cases compared to VLC's 20+ years
Community & Support
IINA has an active community centered on its GitHub repository, which has over 38,000 stars. Bug reports and feature requests go through GitHub Issues. The developer lhc70000 maintains the project with help from community contributors. Discussion also happens on Reddit's r/macapps where IINA is consistently recommended as the default video player for Mac. The project's documentation is minimal but the app is intuitive enough that most users don't need it.
Frequently Asked Questions about IINA
Our Verdict
IINA is the best video player on macOS. It combines mpv's unmatched codec support with a native interface that respects macOS design conventions. Picture-in-Picture, subtitle management, streaming URL playback, and hardware-accelerated decoding on Apple Silicon make it functionally complete. The only reason to keep VLC around is for the rare edge case where VLC's older, more battle-tested parser handles a corrupt file that mpv rejects. For everything else, IINA is the answer.
About the Author
Creative Software Expert
Related Technologies & Concepts
Related Topics
Sources & References
Fact-CheckedLast verified: May 6, 2026
- 1IINA GitHub Repository
Accessed May 6, 2026
Research queries: IINA Mac video player 2026